sql >> Database teknologi >  >> RDS >> Mysql

Søg i alle kolonner i en tabel ved hjælp af en enkelt where-betingelse med et enkelt søgeord i mysql

SELECT * FROM `some_table`
WHERE
CONCAT_WS('|',`column1`,`column2`,`column3`,`column4`,`column64`) # single condition, many columns
LIKE '%VT%'

Voila.

'|' separator er i øvrigt for at forhindre dig i at finde tilfældige matches, hvor f.eks. kolonne 1 slutter på 'V' og kolonne 2 starter med 'T', hvilket ville give dig en falsk positiv i en søgning efter "VT".

Jeg er ikke sikker på, om metoden ovenfor er hurtigere end OR metode (jeg vil gætte på, at de har samme hastighed), men det indebærer bestemt mindre indtastning, hvis du skriver forespørgslen i hånden.



  1. SQLite skærer

  2. Hvordan ændrer du datatypen for en kolonne i SQL Server?

  3. Hent database eller enhver anden fil fra det interne lager ved hjælp af run-as

  4. Understøtter din ODBC-driver brugerdatakilder?