在MySQL SELECT语句中使用正则表达式的正确格式(不在WHERE部分内)

时间:2014-07-30 11:54:13

标签: mysql regex

我需要使用REGEX(或类似功能)来更新现有表,以便识别字符串字段是否包含格式正确的代码:

UPDATE tblRequests SET flagIsRefCodeOK=(RefCode REGEX '^[A-Z0-9]{8}-(?:[A-Z0-9]{4}-){3}[A-Z0-9]{12}$') WHERE DataSetID=11

但它似乎不喜欢这句话:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REGEX '^[A-Z0-9]

注意,此代码将添加到BEFORE INSERT触发器,该触发器负责更新许多标志。对于REGEX是否正确,我并不感兴趣(尤其是在MySQL中),我只是想让它尝试工作。然后我会弄清楚确切的REGEX,如果这不起作用。

日Thnx

1 个答案:

答案 0 :(得分:1)

运营商名称为REGEXP而不是REGEX,请尝试:

UPDATE tblRequests
    SET flagIsRefCodeOK= (RefCode REGEXP '^[A-Z0-9]{8}-(?:[A-Z0-9]{4}-){3}[A-Z0-9]{12}$')
    WHERE DataSetID=11;