Champ "A" dans le tableau de données existant T, la valeur de A est généralement sous la forme : "12,123,312,1212". Il y a 100 000 éléments de données dans T.
Besoin d'interroger les enregistrements contenant un seul "12" en A~
Par exemple :
"123,125,1212,1234,312" ne contient pas un seul "12", ne pas
"1,18,123,1212,321,312" ne contient pas un seul "12", ne pas
"1, 12,123,1212,321,312" contient un seul "12" pour
...
J'ai 2 méthodes de requête, ce qui semble un peu fastidieux~ L'une est CONCAT et l'autre est LIKE OR
Demandez si quelqu'un a une méthode plus efficace, merci~
Vous pouvez envisager d'ajouter un index de texte intégral au champ A et d'utiliser la recherche en texte intégral :
Il est à noter que :
La valeur par défaut de innodb_ft_min_token_size de MySQL5.6.4 est 3.
La valeur par défaut de ft_min_word_len de MyISAM est 4.
Si la longueur minimale du l'index que vous voulez est 2 , puis configurez-le dans my.cnf :
innodb_ft_min_token_size=2
ft_min_word_len=2