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

Najděte nejlépe odpovídající řádek v MySQL (InnoDB)

Stačí použít LIKE, ale naopak k tomu, na co jste pravděpodobně byli zvyklí.

select query
from table1
where 'engine/mail/key' like concat(query,'%')
order by length(query) desc
limit 1

Výsledky:

mysql> select * from query;
+-------------+
| query       |
+-------------+
| engine      | 
| engine/pdf  | 
| engine/mail | 
+-------------+
3 rows in set (0.00 sec)

mysql> select query from query 
       where 'engine/mail/key' like concat(query,'%') 
       order by length(query) desc 
       limit 1;
+-------------+
| query       |
+-------------+
| engine/mail | 
+-------------+
1 row in set (0.01 sec)



  1. Požadavek nastaven v Concurrent Manager

  2. Jak mohu efektivně vybrat předchozí nenulovou hodnotu?

  3. Jak uložit více možností do jedné tabulky?

  4. Co znamenají dvojité čáry (||) v SQL?