Nous avons un énorme motif dans une requête (environ 12 chaînes à vérifier). Maintenant, je dois faire cette requête dans MySQL, mais il semble que la requête de PostgreSQL n'a pas la même syntaxe.Qu'est-ce qu'un moyen efficace de faire correspondre les modèles dans MySQL?
De PostgreSQL:
SELECT value
FROM ...
WHERE ...
AND `value` !~* '.*(text|text2|text3|text4|text5).*';
Comment puis-je faire cela en MySQL de manière efficace? Je sais que ce n'est probablement pas efficace du tout. Quel est le moyen le plus efficace de le faire?
Cela ne l'affaire, mais est probablement la pire requête possible de le faire:
SELECT `value`
FROM ...
WHERE ...
AND NOT (
`value` LIKE '%text%'
OR `value` LIKE '%text2%'
OR `value` LIKE '%text3%'
OR `value` LIKE '%text4%'
OR `value` LIKE '%text5%');
est REGEXP la voie à suivre ici? Ensuite, je vais devoir comprendre l'expression correspondante.
Dans ce cas, PAS (SIMILAIRE OU SIMILAIRE OU SIMILAIRE ...) est environ 50% plus rapide que NOT RLIKE. Cela peut varier en fonction du nombre de contrôles. Merci pour toute nouvelle information! – Smamatti