我正在尝试通过 Perl 程序在 mysql 中编写正则表达式。我想要这样的查询:
WHERE a.keywords REGEXP '[[:<:]]something[[:>:]]'
但是,在 Perl 中,当我进行此查询时,我在连接时遇到错误:
for($i=0;$i<$count;$i++){
$where = $where . "'[[:<:]]$andkeywords[$i][[:>:]]' "; #errors
因为这不会给我一个错误:
for($i=0;$i<$count;$i++){
$where = $where . "'[[:<:]] $andkeywords[$i] [[:>:]]' "; #no error
注意“无错误”代码中有多余的空格。但是如果我有额外的空格,那么我就得不到我想要的结果,因为在数据库中没有“额外的空格”。
最佳答案
为了完整起见,这也适用:
for ($i = 0; $i < $count; $i++) {
$where .= "'[[:<:]]${andkeywords[$i]}[[:>:]]' ";
}
${blah}
在字符串外无效,但在可插入字符串内,它等同于 $blah
。
我本以为这种模式比其他答案更常见,但是……毕竟,您还想输入什么 "foo${var}bar"
?显然 "foo$var\bar"
不起作用,因为 \b
是公认的转义序列。
关于mysql - 为什么当我构建 Mysql 查询时我的变量不能正确插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/616794/