gpt4 book ai didi

php - Mysql 查找末尾有多余字符的词/句 PHP

转载 作者:行者123 更新时间:2023-11-28 23:13:22 26 4
gpt4 key购买 nike

目前我有一个搜索句子/单词的查询,它几乎按预期工作,

我有一个在表中搜索名称的正则表达式,例如:

function getNames($str){
$stmt = "SELECT * FROM users WHERE name = :name
OR name REGEXP :reg1
OR name REGEXP :reg2
OR name LIKE :lik1";
$query = self::$connection->prepare($stmt);
$query->execute(array(":name"=>$str,
":reg1"=>"^$str" . "[a-zA-Z\s]*$",
":reg2"=>"^[a-zA-Z]*[\s]*[$str][a-zA-Z]"
":lik1"=>"%" . $str . "%"
));
return $query->fetchAll(PDO::FETCH_ASSOC);
}

假设我的表包含以下值

  • 鲍勃
  • 彼得
  • 马克
  • 大卫
  • 约翰

如果我使用 Bob 作为 $name 值运行我的查询,它会得到它,但我希望能够找到 Bob 当我使用 BobsomeLettersExtraBob something 作为 $name 值运行查询有没有办法使用 REGEXP 或 LIKE 来做到这一点?

最佳答案

SELECT * FROM users WHERE  name LIKE '%".$name."%'

上面的查询应该足以得到结果。您应该在向表中输入数据之前验证数据,否则请使用正则表达式

"SELECT * FROM users WHERE name LIKE '%".$name."%' AND REGEXP ^".$name."[a-zA-Z]*$"

更新

对不起,如果我误解了这个问题,请试试这个

"Select * from users  WHERE '".$name."' LIKE CONCAT(name , '%')" 

关于php - Mysql 查找末尾有多余字符的词/句 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44963061/

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