簡體   English   中英

如何在MySQL中查找和替換中指示列值的結尾

[英]How to Indicate the End of a Column Value in Find and Replace in MySQL

我需要更新我的MySQL數據庫。 我有一張學校的桌子,上面有一個叫name的欄目。 一些學校名稱縮寫特定單詞。 例如,“SCHOOL”縮寫為“SCH”。 我想用“SCHOOL”替換所有出現的“SCH”。 我在SQL中已經使用了以下UPDATE命令:

UPDATE `schools`
SET `name` = replace(`name`, ' SCH ', ' SCHOOL ')

它工作得很好,但數據庫中有許多學校以“SCH”結尾,由於“SCH”之后缺少空間而沒有更新。 如何在沒有用“JOHN SCHOOLUTZ HIGH”替換“JOHN SCHULTZ HIGH”等字符串的情況下更換所有出現的這個尾隨的“SCH”字符串? 是否有一個字符表示列中值的結束? 例如:

UPDATE `schools`
SET `name` = replace(`name`, ' SCH<END>', ' SCHOOL')

where表示在該列的值中SCH之后沒有其他字符。 在此先感謝您的幫助!

嘗試這個

UPDATE `schools`
SET `name` = replace(`name`, ' SCH', ' SCHOOL')
 WHERE name LIKE '%SCH'

這是一個問題,因為您只想替換'JOHN SCHULTZ SCH'中的最后一個SCH。

兩種可能性第一種適用於結束SCH:

UPDATE schools
SET name = left(name, length(name) - 4)
where name like '% SCH';

第二個適用於所有SCH:

UPDATE schools
SET name = trim(replace(concat(name, ' '), ' SCH ', ' SCHOOL '));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM