使用SQL就像模式查询一样

时间:2013-09-12 19:36:32

标签: sql database sql-like

我有一个PHP函数接受一个名为$ letter的参数,我想将参数的默认值设置为“任意数字或任何符号”的模式。我怎么能这样做?

这是我的问题。

select ID from $wpdb->posts where post_title LIKE '".$letter."%

我尝试在wordpress stackexchange发帖,他们告诉我在这里发帖,因为这是一个特定于wordpress的SQL /通用编程问题。

谢谢!回复非常感谢:)

1 个答案:

答案 0 :(得分:0)

为了匹配数字或字母(我不确定你的符号是什么意思)你可以在MySQL中使用RLIKE运算符:

SELECT ... WHERE post_title RLIKE '^[A-Za-z0-9]'

这意味着默认情况下$letter将是[A-Za-z0-9] - 这意味着从a到z的所有字母(两种情况)和0-9的数字。如果您需要特定符号,可以将它们添加到列表中(但-必须是第一个或最后一个,否则它具有范围的特殊含义)。 ^字符表示它位于字符串的开头。所以你需要这样的东西:

"select ID from $wpdb->posts where post_title RLIKE '^".$letter."%'"

当然,如果您在不清理输入的情况下构建查询,请务必警告您不要使用SQL注入攻击(确保其中没有任何'(撇号)。

修改

要匹配以数字开头的标题,请使用[0-9] - 这意味着它将匹配0到9之间的一位数