Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL外壳正则表达式查询_Mysql_Regex - Fatal编程技术网

Mysql SQL外壳正则表达式查询

Mysql SQL外壳正则表达式查询,mysql,regex,Mysql,Regex,我的代码中出现了一个bug,它允许重复条目出现在数据库表中,但大小写不同。我正在使用MySQL 例如在本例中,不应添加第二行,但已添加 ID Name Description ------------------------------------- 1 HELLO WORLD Saying hello 2 Hello world Saying hello 为了纠正不正确的数据,我想删除全名大写的行,只要出现重复。我可以在

我的代码中出现了一个bug,它允许重复条目出现在数据库表中,但大小写不同。我正在使用MySQL

例如在本例中,不应添加第二行,但已添加

    ID    Name          Description
-------------------------------------
    1    HELLO WORLD    Saying hello
    2    Hello world    Saying hello
为了纠正不正确的数据,我想删除全名大写的行,只要出现重复。我可以在SQL中使用正则表达式吗?这是最好的解决方案吗?我该怎么做

该表全文如下:

“地址簿组”,“创建表
地址簿组
ID
int(10)无符号非空默认值“0”,
NAME
varchar(255)collate utf8\u unicode\u ci不为空,
说明
文本整理 utf8\u unicode\u ci,
ADDRESSBOOK\u ID
int(10)默认为空,
TYPE
int(10)无符号非空默认值“1”,主键(
ID
),键
ADDRESSBOOK\u ID
ADDRESSBOOK\u ID
)引擎=MyISAM默认值 字符集=utf8 COLLATE=utf8\U unicode\U ci行\U格式=动态'


编辑-我忘了在前面提到,我只希望在ADDRESSBOOK_ID为“6”时进行重复检查

下面选择存在双精度的所有大写值

delete t.* from table_name t
inner join (
    select distinct t.id
    from table_name t
    left join table_name t2
        on t2.col_name = t.col_name
    where t.col_name LIKE BINARY UPPER(t.col_name)
) as a
    on a.id = t.id;
编辑:


下面选择存在双精度的所有大写值

delete t.* from table_name t
inner join (
    select distinct t.id
    from table_name t
    left join table_name t2
        on t2.col_name = t.col_name
    where t.col_name LIKE BINARY UPPER(t.col_name)
) as a
    on a.id = t.id;
编辑:


哪种关系数据库管理系统?并显示表。我提供了一个简化的表示例。到目前为止,我已经研究了如何计算SQL,但我不确定WHERE语句。我没有regex的经验,一直在努力在其中站稳脚跟。一旦我知道我在做什么,我就认为这是一个相当简单的正则表达式(除非我根本不需要正则表达式?)。哪个RDBMS?并显示表。我提供了一个简化的表示例。到目前为止,我已经研究了如何计算SQL,但我不确定WHERE语句。我没有regex的经验,一直在努力在其中站稳脚跟。一旦我知道我在做什么,我就认为这是一个相当简单的正则表达式(除非我根本不需要正则表达式)。谢谢Julien,但我还需要检查行是否已经存在不同的大小写。另外,
LIKE
不区分大小写@JulienMay,这真的对你有用吗?据我所知,MySQL不允许对正在删除的同一个表进行子选择。比如看这个问题:@dan1111:是的,这对我来说很有用。使其工作的相关部分是使用联接作为shown@JulienMay +1. 我只是想知道,因为我试着做类似的事情。但是我没有使用联接,所以这一定是我的问题。谢谢Julien,但我还需要检查行是否已经存在,并且大小写不同。另外,
LIKE
不区分大小写@JulienMay,这真的对你有用吗?据我所知,MySQL不允许对正在删除的同一个表进行子选择。比如看这个问题:@dan1111:是的,这对我来说很有用。使其工作的相关部分是使用联接作为shown@JulienMay +1. 我只是想知道,因为我试着做类似的事情。但是我没有使用连接,所以这一定是我的问题。