我有一个 PHP 函数,它接受一个名为 $letter 的参数,我想将参数的默认值设置为“任何数字或任何符号”的模式。我怎样才能做到这一点?
顺便说一下,这是我的查询。
select ID from $wpdb->posts where post_title LIKE '".$letter."%
我尝试在 wordpress stackexchange 上发帖,他们告诉我在这里发帖,因为这是一个特定于 wordpress 的 SQL/通用编程问题。
谢谢!非常感谢回复:)
为了只匹配数字或字母(我不确定符号的确切含义),您可以在 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 的一位数字