Mysql 如何在我不知道其长度的子字符串中间使用通配符?
我正在尝试更新数据库,用新字符替换旧字符,我的问题是,在该字符串的中间有一些字符我必须删除,但我不知道长度或类型,我只知道子字符串的开始时间和结束时间,例如exmapleMysql 如何在我不知道其长度的子字符串中间使用通配符?,mysql,replace,Mysql,Replace,我正在尝试更新数据库,用新字符替换旧字符,我的问题是,在该字符串的中间有一些字符我必须删除,但我不知道长度或类型,我只知道子字符串的开始时间和结束时间,例如exmaple my-string=XXXXXXXX-endstring 所以,我想这样做 new-string-endstring 我知道我的字符串值,但不知道中间的子字符串 XXXXX < /代码> 有什么办法吗 谢谢。如果您使用PHP,您可以执行以下操作: 1) 对列值中包含my string文本的所有行进行SELECT SELE
my-string=XXXXXXXX-endstring
所以,我想这样做
new-string-endstring
我知道我的字符串值,但不知道中间的子字符串<代码> XXXXX < /代码>
有什么办法吗谢谢。如果您使用PHP,您可以执行以下操作: 1) 对列值中包含
my string
文本的所有行进行SELECT
SELECT*FROM table\u name,其中列的名称类似于“%my string%”
用作通配符%
2) 循环遍历所有这些结果行,并使用PHP的
str_replace
替换mystring
中的new_string
,然后使用MySQL的UPDATE
更新DB中列的新值您可以使用SUBSTRING\u索引获取所需字符串,并使用CONCAT追加新字符串
Update TableA
Set columnA = CONCAT( 'newstring' , SUBSTRING_INDEX(columnA, '-', -1) )
更新以
my string-
开头并以-endstring
结尾的字段:
UPDATE table_name
SET column_name = 'new-string-endstring'
WHERE column_name LIKE 'my-string-%'
AND column_name LIKE '%-endstring';
嗨,谢谢,但是我怎么知道我的字符串和结束字符串之间的字符串呢?在示例中:XXXX,我不知道长度,我考虑过使用子字符串,但我不确定如何…如果您想过滤掉已知字符串之间的文本,请查看PHP的
preg_match()
函数。我不是正则表达式方面的专家,所以也许其他人可以在这里提供帮助?但是,例如,您的示例列A中是否有要替换的字符串?我想替换columnA(我知道这个字符串)加上另一个短字符串,它可以是3位、4位或5位数字,直到我找到一个" ... 你知道怎么做吗?@jpganz18,columnA有一个值,就像你提到的XXXXXXXX-endstring。我一直在寻找——从结尾到结束,保留每一件事——并将新闻字符串连接到它。