0

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

顺便说一下,这是我的查询。

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

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

谢谢!非常感谢回复:)

4

1 回答 1

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 的一位数字

于 2013-09-12T19:39:28.440 回答