我正在对我的数据库进行一些重大更改,因此我需要用一些新文本替换大量文本,但只有在存在某个单词时才会替换。
Table
*-----------------------------------------------*
| id | name | adress | town |
*-----------------------------------------------*
我有一张这样的桌子。我想在表格的每一行中替换“地址”和“城镇”,例如“town = new york”。(例如)。
因此,每当“纽约”文本出现在“城镇”中时,地址和城镇都应该被其他东西取代。只有一次 - 当我运行脚本时。
任何人都可以帮我吗?我想我可以使用preg匹配并以某种方式替换PHP中的函数,或者它可以完全用SQL命令完成吗?
谢谢你们
答案 0 :(得分:3)
UPDATE theTable
SET name = 'xxx',
adress = 'xxx'
WHERE town LIKE '%new york%'
或者,WHERE UPPER(town) like UPPER('%new york%')
不区分大小写。
答案 1 :(得分:0)
MySQL不支持正则表达式,但它有一个 like 运算符(详见here),它支持占位符“%”和“_”,其中“%”匹配任意数量的字符(甚至0),“_”恰好匹配一个字符(类似于“*”和“?”文件名通配符)。因此,要在开头找到包含“纽约”的字符串,请使用
where town like "New York%"
表示字符串中包含“New York”的字符串
where town like "%New York%"