mysql - 在 db_query 正则表达式中使用连字符/破折号

标签 mysql sql drupal

查询

SELECT * FROM foo WHERE bar REGEXP "foo-bar";

按预期返回结果,但是在执行我认为在 Drupal 中等效的功能时

db_query("SELECT * FROM foo WHERE bar REGEXP (:regex)", array("regex"=>"\"foo-bar\""));

不返回任何结果..我想知道这是否可能是由于连字符与正则表达式范围等一起使用而引起的,但找不到任何相关的解决方法。

编辑:虽然我已经尝试过类似于罗宾斯之前的帖子,但按照这个思路,以下返回结果:

$bar = db_query("SELECT * FROM foo WHERE bar LIKE '%foo-bar%' ")

但是,

$bar = db_query("SELECT * FROM foo WHERE bar LIKE ':regex' ", array("regex"=>"%foo-bar%"));

或任何变体(例如将百分比从参数移动到查询)都不会。

我想知道我是否做错了,或者是否存在字符串替换被 drupal 转义的问题,但是 Drupal db_query documentation在参数中没有提到正则表达式,并且我不相信连字符会出于安全/显示目的而被转义。

ps。温柔一点,这是第一篇 Stackover Flow 帖子,也是 Drupal 和 MySQL 的新手;)

最佳答案

SELECT * FROM foo WHERE bar LIKE '%foo-bar%' 

这对你有用。

关于mysql - 在 db_query 正则表达式中使用连字符/破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25758797/

相关文章:

android - 从 mysql 数据库填充两个相互依赖的微调器

php - 我如何在我从数据库中获取的 get_file_contents 中使用 if else 条件

c# - 为什么 'Convert.ToInt32' 和 'as int?' 的工作方式不同?

sql - 创建外键约束时,是否需要列名?

php - 如何在 drupal 主题中编辑 htm/css?

drupal - 如何更改页脚 由 Drupal 及其链接提供支持?

mysql - 在MYSQL中查找具有不同拼写的重复记录

mysql - 如何显示不存在值的行

mysql - 选择字段匹配的数据

mysql - 使用 MySQL 在后台运行 SQL 查询