我有一个名为menu_name的列的表,其中包含类似“one | two | three | four | something”的字符串
我想编写一个一次性脚本,删除包括最后一个|
之后的所有内容所以最终的价值是“一|二|三|四”
如果没有|在单元格中,即“某事”,然后我想将字符串设置为“”
谢谢!
感谢Nanhe Kumar让我走近,这是最后的命令:
UPDATE reports SET menu_name = SUBSTRING(menu_name,1,POSITION(substring_index(menu_name,'|',-1) IN menu_name)-2)
答案 0 :(得分:2)
您可以使用SUBSTRING_INDEX功能执行此操作。
select substring_index(menu_name, '|', 4) from my_table;
要返回一个空字符串,以防你的分隔符不存在,你可以做一个稍微复杂的SELECT:
select if (menu_name like '%|%|%|%|%', substring_index(menu_name, '|', 4), '')
from my_table;
的SQL小提示
答案 1 :(得分:1)
SELECT SUBSTRING(menu_name,1,POSITION(substring_index(menu_name,'|',-1) IN menu_name)-2) AS menu FROM table_name;