sql >> Databasteknik >  >> RDS >> Mysql

Sök i alla kolumner i en tabell med ett enda where-villkor med ett enda nyckelord i mysql

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

Voila.

'|' avgränsare är förresten att förhindra att du hittar tillfälliga matchningar där t.ex. kolumn1 slutar på 'V' och kolumn2 börjar med 'T', vilket skulle ge dig en falsk positiv i en sökning efter "VT".

Jag är inte säker på om metoden ovan är snabbare än OR metod (jag skulle gissa att de har samma hastighet) , men det innebär definitivt mindre att skriva om du skriver frågan för hand.



  1. Vad behöver jag för att köra SQL?

  2. Unik begränsning för kombination av två kolumner?

  3. MS-Access Class Module och VBA

  4. Kommer ANSI JOIN jämfört med icke-ANSI JOIN-frågor att fungera annorlunda?