我正在运行包含以下代码的SQL查询:
IF(oa.affiliatetrack REGEXP '|MB[1-6]', ((ol.item_price_exVat * oloq.oq_item_qty) * 0.08) *1.20, ((ol.item_price_exVat * oloq.oq_item_qty) * 0.06) *1.20) as Original_Commission
当在MySQl上运行时,它运行正常。当我转移到通过PHP自动运行脚本的Linux服务器时,它会返回以下错误:
MySQL错误:出现错误'空(子)表达式'来自regexp
这是什么意思?以及如何避免它?
答案 0 :(得分:0)
在REGEXP的代码字符串中'|MB[1-6]
'的符号为 |
该符号与或一样用于搜索变体,因此|MB[1-6]
具有下一个搜索变体:
- 空字符串(这会在您的情况下生成错误)MB1
MB2
MB3
MB4
MB5
MB6
如果您在搜索字符串时需要|
个文字部分,请使用\|