2013-02-10 2 views
0

базы данных:Лучший способ найти строку в MySQL по части стоимости

 
+----+------------+ 
| id | somevalue | 
+----+------------+ 
| 1 | 1000  | 
+----+------------+ 
| 2 | 1001  | 
+----+------------+ 
| 3 | 1002  | 
+----+------------+ 
| 4 | 10021  | 
+----+------------+ 

Вопрос:

Что такое лучший способ найти строку по строке, содержащей часть «SomeValue»?
1. Скажем, строка 1002123456. Так что в этом случае я должен найти грести ID 4.
2. Скажем, строка 1002345678. Так что в этом случае я должен найти грести ID 3.

Would " MySQL LIKE "работают в этом сценарии?

UPDATE:
База данных содержит 60К строк и «SomeValue» должны быть согласованы с фронта. Поскольку часть «SomeValue» может содержать различные строки, например:

 
+----+------------+ 
| id | somevalue | 
+----+------------+ 
| 1 | 1000  | 
+----+------------+ 
| 27 | 371000  | 
+----+------------+ 

Я ищу способ, чтобы сделать процесс как можно быстрее.

ответ

0
SELECT * FROM `db`.`table` WHERE 'someval' LIKE CONCAT('%',`field` , '%') ; 

RLIKE сеточки вас, чтобы соответствовать регулярные выражения в полях

+0

Спасибо за ответ. Я обновил вопрос. RLIKE, похоже, не работает в этом сценарии. – k4h

+0

Я обновил свой ответ – Tucker

+0

Если вам нужно только совпадение, используйте 'LIKE CONCAT (searchstr, '%')'. –

0

SELECT * FROM 'таблицы' WHERE 'searchNumber' LIKE CONCAT ('%', SomeValue, '%')

Смежные вопросы