我正在尝试从包含特定单词的所有行中删除特定列中的行。
例如:
删除包含单词 apple
的行,它始终位于行的开头。
+--+------------------+
|ID|data |
+--+------------------+
|1 |sometext1 |
| |sometext2 |
| |apple sometext3 |
| |sometext4 |
+--+------------------+
|2 |apple sometext5 |
| |sometext6 |
+--+------------------+
所以结果是:
+--+------------------+
|ID|data |
+--+------------------+
|1 |sometext1 |
| |sometext2 |
| |sometext4 |
+--+------------------+
|2 |sometext6 |
+--+------------------+
'SometextX' 每行都不同,每行的行数都不同,并且每行的字符数也不同。 我真的需要 MySQL 任何帮助。
最佳答案
您最好在此处使用 REGEXP
来匹配每行中的模式:
DELETE FROM yourTable WHERE text REGEXP '^apple';
REGEXP
允许相当复杂的正则表达式匹配,如果您的需求发生变化或以后变得更加复杂,这将很有用。
编辑:MySQL 没有内置对正则表达式替换的支持,因此没有简单的方法来完成您想要的任务。
删除单词 apple
的通用正则表达式模式为 \bapple\b
。您可以搜索此模式并替换为空字符串。
关于MySQL删除包含特定单词的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49405260/