gpt4 book ai didi

php - 如何使用正则表达式通过 MySQL 查询返回记录?

转载 作者:可可西里 更新时间:2023-11-01 07:24:22 25 4
gpt4 key购买 nike

我的数据库中有通过用户输入搜索的记录,最初,这足以找到正确的记录。

"SELECT id FROM plants WHERE Flower LIKE '%" . $sanitizedUserInput . "%'"

这一切都很好,但后来事情开始发生,例如,搜索“红色”会在它们的 Flower 字段中按顺序找到带有字符“red”的植物,而不仅仅是整个词“红色”。

有人建议我在用户输入的两边简单地放置一个空格,但我知道如果单词是字段中的第一个单词或最后一个单词,这将失败。我心想,我应该使用正则表达式!搜索两边都有单词边界的单词。

不幸的是,我以前从未在数据库中使用过正则表达式。您如何构建查询以使用正则表达式搜索数据库?希望它像这样简单:

"SELECT id FROM plants WHERE Flower REGEX `/\b" . $sanitizedUserInput . " \b/`"

最佳答案

是的,就是这么简单。

MySQL Reference Manual - Regular Expressions

MySQL正则表达式中的词边界序列为[[:<:]][[:>:]]所以你最终会得到这样的结果:

$query = "SELECT id ".
"FROM plants ".
"WHERE Flower REGEXP '[[:<:]]".$sanitizedUserInput."[[:>:]]'";

关于php - 如何使用正则表达式通过 MySQL 查询返回记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/823462/

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