gpt4 book ai didi

MySQL 搜索使用许多 'like' 运算符 : is there a better way?

转载 作者:行者123 更新时间:2023-11-29 01:44:53 24 4
gpt4 key购买 nike

我有一个页面,它从数据库中的表中获取所有行,然后在 HTML 表中显示这些行。效果很好,但现在我想实现“搜索”功能。有一个搜索框,搜索词之间用空格隔开。我打算让它在三个字段中搜索搜索词,“制造”、“模型”和“类型”。这三个字段都是VARCHAR(30)。

目前,如果我想使用 3 个字词(比如“酷”、“abc”和“123”)进行搜索,我的查询将如下所示。

SELECT * FROM table WHERE make LIKE '%cool%' OR make LIKE '%abc%' OR make LIKE '%123%' OR model LIKE '%cool%' OR model LIKE '%abc%' OR model LIKE '%123%' OR type LIKE '%cool%' OR type LIKE '%abc%' OR type LIKE '%123%'

这看起来真的很糟糕,如果有更多的搜索词或更多的字段要搜索,情况会变得更糟。我的问题是:是否有更好的搜索方式?如果是,是什么?

最佳答案

使用 REGEXP 而不是 like

SELECT * FROM table WHERE make REGEXP 'cool|abc|123' OR model REGEXP 'cool|abc|123' OR type REGEXP 'cool|abc|123';

阅读更多关于 REGEXP 的信息

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

http://www.go4expert.com/forums/showthread.php?t=2337

关于MySQL 搜索使用许多 'like' 运算符 : is there a better way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9760746/

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