我需要使用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
答案 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;