Hallo Christian,
delimiter // CREATE FUNCTION comparePhoneNos(number1 varchar(50), number2 varchar(50)) RETURNS float BEGIN DECLARE pos int DEFAULT 1; DECLARE len int; DECLARE len1 int; DECLARE equal_chars int DEFAULT 0; DECLARE unequal_chars int DEFAULT 0; SET len = char_length(number1); SET len1 = char_length(number2); WHILE pos <= len AND pos <= len1 DO IF substr(number1, pos, 1) != substr(number2, pos, 1) THEN SET unequal_chars = unequal_chars + 1; ELSE SET equal_chars = equal_chars + 1; END IF; SET pos = pos + 1; END WHILE; RETURN equal_chars * 100.0 / (unequal_chars + equal_chars); end // delimiter ;
Diese Funktion rufst du über
SELECT kundennr FROM kunden WHERE comparePhoneNos(telno, '1234') >= 80.0
auf. Das liefert dir alle Datensätze, in denen 80% oder mehr Zeichen gleich sind in der Telefon-Nummer.
Danke dir für das Beispiel, könntest du mir vielleicht noch sagen, wo ich die Funktion speichern soll? Ich habe eine Datei, da liegen alle php Funktionen drin, die ich so habe, aber das ist eine mysql Funktion?