sql >> Databasteknik >  >> RDS >> Mysql

valfritt ord sökning med LIKE %

Jag kanske har missförstått men har du övervägt att bara göra det här:

SELECT * FROM customer WHERE
    CONCAT(firstname, " ", lastname) LIKE '%$pattern%'

om användaren anger mer än ett ord, åtskilda av blanksteg, dela upp strängen i ord och ändra frågan till

SELECT * FROM customer WHERE
    CONCAT(firstname, " ", lastname) LIKE '%$word1%'
 OR CONCAT(firstname, " ", lastname) LIKE '%$word2%'
 OR CONCAT(firstname, " ", lastname) LIKE '%$word3%'
 ...


  1. Varför genererade Rails Active Record-migrering COLLATE utf8_bin på varchar-kolumner i mysql

  2. Installation av RODBC/ROracle-paket på OS X Mavericks

  3. Hur får man aktuell databas och användarnamn med `select` i PostgreSQL?

  4. Ska jag använda !=eller <> för inte lika i T-SQL?