2016-05-08 23 views
1

Ich muss eine Zeichenfolge mit durch Kommas getrennten Werten in einer gespeicherten Prozedur vergleichen.Vergleichen Komma getrennte Zeichenfolge in Mysql

Eingang RANDOM String = "'aa','ab','ac'"

Ich brauche so etwas wie

ich einen resultierenden Effekt ähnlich der muß unten ohne Verwendung von dynamischem SQL.

SELECT * FROM table1 
WHERE table1.field1 LIKE %aa% OR 
table1.field1 LIKE %ab% OR 
table1.field1 LIKE %ac% 

Ich kann nicht als die Eingabezeichenfolge ist Variable FIND_IN_SET und nicht

festen

Antwort

0

Sie können auf diese Weise nähern:

SELECT 
    * 
FROM table1 
WHERE 
    table1.field1 REGEXP 
    REPLACE (REPLACE ("'aa','ab','ac'",'\'',''),',','|'); 

Allgemein gilt:

SELECT 
    * 
FROM table1 
WHERE 
    table1.field1 REGEXP 
    REPLACE (REPLACE (PUT_YOUR_INPUT_STRING_HERE,'\'',''),',','|') 

Um Um zu verstehen, was dort vor sich geht, könnte die folgende Abfrage dazu führen:

SELECT 
REPLACE("'aa','ab','ac'",'\'','') afterFirstReplace, 
REPLACE(REPLACE("'aa','ab','ac'",'\'',''),',','|') afterSecondReplace; 

afterFirstReplace    afterSecondReplace 
aa,ab,ac       aa|ab|ac 
Verwandte Themen