我有一个数据库,其名称必须采用以下格式:第一个[ID号]
这些名称是手动输入的,有时输入不正确,没有第二个空格,如下所示:第一个[ID号码]
我的目的是搜索不正确格式的所有实例。我正在尝试找到一种方法来搜索字符串中包含以下内容的表达式:
我进行了广泛的搜索,并且我尝试了几个命令,如RLIKE,REGEXP,NOT LIKE,SPACE等。我无法获得任何工作。这里只是我尝试过的一个例子,它返回正确和错误的条目:
SELECT CO.name 'User'
FROM tcompany CO
WHERE CO.name NOT LIKE '%. \\['
ORDER BY CO.name ASC;
答案 0 :(得分:1)
使用:
WHERE CO.name NOT LIKE '% [%'
答案 1 :(得分:1)
我认为这可能会对你有所帮助。您实际上可以搜索 NOT 以查找所需的字符串,剩余的是您匹配的记录。
SELECT CO.name 'User'
FROM tcompany CO
WHERE CO.name NOT LIKE '(Select CONCAT(FIRST, " " ,LAST) from User) [%%]'
ORDER BY CO.name ASC;
答案 2 :(得分:0)
这很有意思。因此,为了满足您的第一个条件,以下方法将有效
SELECT CO.name 'User'
FROM tcompany CO
WHERE CO.name NOT LIKE '%[ ][[]%'
ORDER BY CO.name ASC;
答案 3 :(得分:0)
另一个专门用于在左括号前找到缺失空格的选项:
WHERE SUBSTR(CO.name, LOCATE('[', CO.name) - 1, 1) <> ' '
如果你想纠正它们:
UPDATE tcompany
SET name = REPLACE(name, '[', ' [')
WHERE SUBSTR(name, LOCATE('[', name) - 1, 1) <> ' '