【问题标题】:mysql query against wildcard针对通配符的mysql查询
【发布时间】:2010-02-23 00:19:26
【问题描述】:

我在 php 中有一个 mysql 查询,使用 match / against 过滤结果。我试图在 $string 之后得到一个通配符,所以下一个字符可以是任何东西。帮忙?

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string%' IN BOOLEAN MODE)"

【问题讨论】:

    标签: php wildcard against


    【解决方案1】:

    在使用MATCH (...) AGAINST (...) 时,使用* 而不是% 作为通配符:

    "SELECT * FROM $table WHERE MATCH (message) AGAINST('$string*' IN BOOLEAN MODE)"
    

    【讨论】:

      【解决方案2】:

      不要将变量嵌入到双引号字符串中,然后就可以了:

      "SELECT * FROM " . $table . " WHERE MATCH (message) AGAINST ('" . $string . "%' IN BOOLEAN MODE)"
      

      话虽如此,我无法确认这是有效的 SQL。但至少它会确保你的变量被正确扩展,如果它不起作用,那么它不会是因为 PHP。

      如果这个提醒有用,请不要忘记escape data that goes into a query

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多