gpt4 book ai didi

php - 将 php 变量 'foobar' 匹配到 mysql 中的 'Foo Bar'

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

我的 mysql 表包含一个条目

Foo Bar 

(即可能包括大写字母和空格)

我需要使用字符串 'foobar' 搜索数据库并匹配它

foobar 最初是从数据库生成的,使用:

$i = str_replace(' ','',$i);
$i = preg_replace("/[^A-Za-z0-9]/", "", $i);
$i = strtolower($i);

最佳答案

在执行比较之前,在 MySQL 中将 Foo Bar 转换为 foobar 并不容易(尽管 it is possible with UDFs )。那么你只需要做:

WHERE LOWER(preg_replace('/[^A-Za-z0-9]/', '', field)) = 'foobar'

最简单的选择是使用 regular expression pattern matching ,默认情况下不区分大小写——只需在 foobar 中的每个字符之间插入 [^[:alnum:]]* (在 PHP 中),然后搜索数据库:

WHERE field RLIKE '^[^[:alnum:]]*f[^[:alnum:]]*o[^[:alnum:]]*o[^[:alnum:]]*b[^[:alnum:]]*a[^[:alnum:]]*r[^[:alnum:]]*$'

我认为最优雅(虽然有点难)的解决方案是 define your own collation忽略非字母数字字符和字母大小写,然后使用它。

关于php - 将 php 变量 'foobar' 匹配到 mysql 中的 'Foo Bar',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226731/

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