0

数据库:

+----+------------+
| 编号 | 一些价值 |
+----+------------+
| 1 | 1000 |
+----+------------+
| 2 | 1001 |
+----+------------+
| 3 | 1002 |
+----+------------+
| 4 | 10021 |
+----+------------+

问题:

通过包含“somevalue”的字符串查找行的最佳方法是什么?
1. 假设字符串是 1002123456。所以在这种情况下,我必须找到 ID 为 4
的行。 2. 假设字符串是 1002345678。所以在这种情况下,我必须找到 ID 为 3 的行。

“MySQL LIKE”会在这种情况下工作吗?

更新:
数据库有 60k 行,“somevalue”应该从前面匹配。因为一块“somevalue”可能包含不同的行,例如:

+----+------------+
| 编号 | 一些价值 |
+----+------------+
| 1 | 1000 |
+----+------------+
| 27 | 371000 |
+----+------------+

我正在寻找一种方法来使这个过程尽可能快。

4

2 回答 2

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

RLIKE 允许您匹配字段中的正则表达式

于 2013-02-10T17:00:17.967 回答
0

SELECT * FROM 'table' WHERE 'searchNumber' LIKE CONCAT('%', somevalue, '%')

于 2013-02-11T02:12:44.273 回答