sql >> Databáze >  >> RDS >> Mysql

Mysql fulltextové vyhledávání se shodou a proti

Měli byste použít REGEXP '[[:<:]]aa[[:>:]]' Chcete-li najít přesné slovo, zkuste dotaz níže, funguje to dobře.

SELECT * FROM `table_name` 
     WHERE `table_name`.`Description` REGEXP '[[:<:]]aa[[:>:]]' 
     and `table_name`.`Description` REGEXP '[[:<:]]cc[[:>:]]';

POZNÁMKA: Můžete také použít jako '%cc%', ale může to být složitý problém, protože pokud budete hledat 'cc', znamená to, že bude hledat cc parse v celém řetězci, ne v přesném slově, takže důrazně doporučuji použít REGEXP '[[:<:]]word[[:>:]]

Příklad:

Vstupní tabulka

      Description
    aa   bb cc   dd
    xx   aa ff   gg
    hh   kk cc   qq
    cc   ee tt   aa
    aamm bb cc   dd
    aa   bb ccmm dd

Výstup:

     Description
   aa   bb cc   dd   
   cc   ee tt   aa    


  1. Základy tabulkových výrazů, Část 7 – CTE, úvahy o optimalizaci

  2. Použití výstrah a operátorů na serveru SQL

  3. Spojení tří tabulek s jinými spojeními než INNER JOIN

  4. SSMS nyní přichází s Azure Data Studio