如何从sql表中删除一组记录
我有一个名为列的表,其中包含“arthur_01”、“arthur_02”、“arthur_03”…“arthur_10”等值以及许多其他值 有没有办法在一个查询中删除所有的“arthur\u 0x”?如何从sql表中删除一组记录,sql,Sql,我有一个名为列的表,其中包含“arthur_01”、“arthur_02”、“arthur_03”…“arthur_10”等值以及许多其他值 有没有办法在一个查询中删除所有的“arthur\u 0x”? 我知道BETWEEN运算符取一个范围,但有没有办法使它取一半字符串为数字的范围?您需要LIKE运算符: 此解决方案对“arthur_0…”之外的数据进行了一些假设。否则,您可能需要RDBS特定的函数。您需要类似的运算符: 此解决方案对“arthur_0…”之外的数据进行了一些假设。否则,您可能需
我知道BETWEEN运算符取一个范围,但有没有办法使它取一半字符串为数字的范围?您需要LIKE运算符:
此解决方案对“arthur_0…”之外的数据进行了一些假设。否则,您可能需要RDBS特定的函数。您需要类似的运算符:
此解决方案对“arthur_0…”之外的数据进行了一些假设。否则,您可能需要特定于RDB的功能。有不同的方法来实现这一点,不幸的是,大多数方法都是特定于供应商的 一种方法是提取感兴趣的特征并与目标值进行比较
DELETE FROM table1
WHERE SUBSTRING(column_name, 9, 1) = x;
或用于一系列值
DELETE FROM table1
WHERE SUBSTRING(column_name, 9, 1) BETWEEN x AND y
这里是演示MySQL
下面是SQL Server的演示
注意:这种方法的缺点是优化器将无法使用此列上的任何索引
另一种方法是利用模式匹配,但在不同的RDBMS中实现方式不同
例如,在SQL Server中,您可以
DELETE FROM table1
WHERE column_name LIKE 'arthur_0[345]%';
这将有效地删除列_name中值以开头的任何行
亚瑟03或亚瑟04或亚瑟05
这是演示
MySQL中的情况可能也是这样
DELETE FROM table1
WHERE column_name RLIKE '^arthur_0[345]';
这里是演示有不同的方法,不幸的是,大多数方法都是针对供应商的 一种方法是提取感兴趣的特征并与目标值进行比较
DELETE FROM table1
WHERE SUBSTRING(column_name, 9, 1) = x;
或用于一系列值
DELETE FROM table1
WHERE SUBSTRING(column_name, 9, 1) BETWEEN x AND y
这里是演示MySQL
下面是SQL Server的演示
注意:这种方法的缺点是优化器将无法使用此列上的任何索引
另一种方法是利用模式匹配,但在不同的RDBMS中实现方式不同
例如,在SQL Server中,您可以
DELETE FROM table1
WHERE column_name LIKE 'arthur_0[345]%';
这将有效地删除列_name中值以开头的任何行
亚瑟03或亚瑟04或亚瑟05
这是演示
MySQL中的情况可能也是这样
DELETE FROM table1
WHERE column_name RLIKE '^arthur_0[345]';
下面是演示什么是RDBMS MySQL、SQL Server、Oracle,。。。您正在使用什么RDBMS?MySQL、SQL Server、Oracle,。。。你在用什么?