Php 是否使用preg match更新SQL表中的每一行?
我正在对我的数据库做一些大的更改,所以我需要用一些新的文本替换大量的文本,但是只有当某个单词存在时Php 是否使用preg match更新SQL表中的每一行?,php,mysql,sql,preg-replace,Php,Mysql,Sql,Preg Replace,我正在对我的数据库做一些大的更改,所以我需要用一些新的文本替换大量的文本,但是只有当某个单词存在时 Table *-----------------------------------------------* | id | name | adress | town | *-----------------------------------------------* 我有一张这样的桌子。我想替换表中每一行的“address”和“town”,其中“t
Table
*-----------------------------------------------*
| id | name | adress | town |
*-----------------------------------------------*
我有一张这样的桌子。我想替换表中每一行的“address”和“town”,其中“town=newyork”(例如)
因此,每当文本“纽约”出现在“城镇”中时,地址和城镇都应该被替换为其他内容。只有一次-当我运行脚本时
有人能帮我吗?我想我可以通过某种方式使用PHP中的preg match和replace函数来实现这一点,或者完全可以使用SQL命令来实现
谢谢你们
UPDATE theTable
SET name = 'xxx',
adress = 'xxx'
WHERE town LIKE '%new york%'
或者,
WHERE UPPER(town)like UPPER(“%new york%”)
不区分大小写。MySQL不支持正则表达式,但它有一个like操作符(有关详细信息,请参阅),它支持占位符“%”和“u”,其中“%”匹配任意数量的字符(甚至0),而“u”只匹配一个字符(类似于“*”和“?”文件名通配符)
where town like "New York%"
对于字符串中任何包含“New York”的字符串
where town like "%New York%"
我认为这是一个准确的答案,无需@2提供更多或更清晰的信息。愚蠢的问题,但这种格式是否不区分大小写?
New York
,New York
,New York
,New York
?@Smamatti这取决于数据库系统(MySQL区分大小写,正如Francois B.addresses一样,我相信Oracle和PostgreSQL区分大小写,SQL Server不区分大小写);你可以在谷歌上搜索:“site:stackoverflow.com SQL like case sensitive”…是的。在MySQL文档中查找RLIKE
/REGEXP
。不过,这并不是PCRE的问题。