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

Hvordan søger man i flere kolonner med prioritet i MySQL?

Det kunne være en af ​​løsningerne:

SELECT id, desc, abbreviation, etc FROM
( 
   SELECT 1 AS rnk,  id, title as 'desc' , abbreviation , etc FROM shows 
   WHERE abbreviation LIKE '%".$term."%'
   UNION 
   SELECT 2 AS rnk,  id, title as 'desc' , abbreviation , etc FROM shows 
   WHERE title LIKE '%".$term."%' 
) tab
ORDER BY rnk
LIMIT 10;

Eller du kan opnå det samme ved at gøre følgende:

SELECT  id, desc, abbreviation, etc FROM
(
    SELECT CASE WHEN abbreviation LIKE '%".$term."%' THEN 1 ELSE 2 END As rnk,
    id, title AS desc, abbreviation, etc 
    FROM shows 
    WHERE abbreviation LIKE '%".$term."%' 
    OR title LIKE '%".$term."%' 
) tab
 ORDER BY rnk
 LIMIT 10;



  1. Problemer med at vælge en enkelt tilfældig række fra MySQL-tabellen

  2. SQL-database med variabelt antal kolonner

  3. Hvordan kan jeg rydde en transaktions-deadlock?

  4. Hvordan overføres tabelværdiparametre fra Java til sql server lagret procedure?