gpt4 book ai didi

mysql - 如何查找与全部或部分输入完全匹配的字符串

转载 作者:行者123 更新时间:2023-11-29 06:39:34 25 4
gpt4 key购买 nike

我想编写一个查询来搜索包含数百万条记录的表,以获取完全且仅从头开始与搜索字符串或其子字符串最匹配的值。性能是最重要的。

这就像相反的:

SELECT * FROM table_name WHERE column_name LIKE '$input%' LIMIT 1

举个例子,我想在下表中搜索 foobar。如果 foobar 不存在,则搜索 fooba 直到最后一个字符 f 并返回完全匹配的行。

+------------------+
| column_name |
+------------------+
| foobar |
+------------------+
| fooba |
+------------------+
| foob |
+------------------+
| foo |
+------------------+
| fo |
+------------------+
| foobarrrrr |
+------------------+
| foooooooooooo |
+------------------+
| barfoo |
+------------------+

最佳答案

您可以使用列值动态构造 LIKE 模式。

SELECT column_name
FROM table_name
WHERE 'foobar' LIKE CONCAT(column_name, '%')
ORDER BY LENGTH(column_name) DESC
LIMIT 1

请注意,如果表很大,这会很慢,因为我认为它无法使用索引。如果这是一个问题,动态构建查询会更好。

关于mysql - 如何查找与全部或部分输入完全匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52374508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com