mysql LIKE = 不精确的搜索

发布于 2024-10-03 14:58:23 字数 170 浏览 6 评论 0原文

我使用一个简单的查询进行搜索:

SELECT * FROM table WHERE field LIKE '%term%'

如果我有一个字段 =“公司名称 123”并且我搜索公司 123,结果为空,

我该如何改进?它只查找该术语是否按顺序排列

I'm using a simple query for my search:

SELECT * FROM table WHERE field LIKE '%term%'

if I have a field = "Company Name 123" and I search for Company 123 the result is null

how can I improve this? it only finds if the term is in sequence

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

遥远的绿洲 2024-10-10 14:58:23

将空格替换为 %

$newTerm = str_replace(' ', '%', $term);
$sql = "SELECT * FROM table WHERE field LIKE '%$term%'"

$r = mysql_qery($sql, $conn);

Replace spaces with %

$newTerm = str_replace(' ', '%', $term);
$sql = "SELECT * FROM table WHERE field LIKE '%$term%'"

$r = mysql_qery($sql, $conn);
知你几分 2024-10-10 14:58:23

您需要在 Company 和 123 之间添加一个 % 才能匹配。您可能想查看全文搜索功能。

You need to put a % between Company and 123 in order for it to match. You might want to check out full text search functions.

后来的我们 2024-10-10 14:58:23

尝试替换空格
$searchtext =str_replace(' ','%',$searchtext);

try to replace spaces
$searchtext =str_replace(' ','%',$searchtext);

鹤仙姿 2024-10-10 14:58:23

你可以:

  • 将你的搜索词分割成单词,并用很多 AND(或者 OR,如果你只想找到其中一个部分)构建一个查询(丑陋,但我已经见过很多次了)
  • 替换 ' '(空格)在你的术语中带有%(这是一个通配符)(要走的路)

you could:

  • split your searchterm into words and build a query with a lot of ANDs (or ORs if you just want to find one of the parts) out of it (ugly, but i've seen this a lot of times)
  • replace ' '(space) with % (thats a wildcard) in your term (the way to go)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文