Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Znajdź najlepiej pasujący wiersz w MySQL (InnoDB)

Po prostu użyj LIKE, ale na odwrót do tego, do czego prawdopodobnie byłeś kiedyś.

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

Wyniki:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ustaw limit i przesuń nieprawidłowe umieszczenie w zapytaniu

  2. doktryna2 - Jak poprawić efektywność spłukiwania?

  3. Zamiennik dla PEAR:MDB2 na PHP 5.3

  4. SQLSTATE[HY000]:Błąd ogólny:1298 Nieznana lub niepoprawna strefa czasowa:okna „UTC”

  5. Dynamiczny pivot MySQL