我有一个表,在其中提取一些值,一列值可以包含“value1 | value2 | value3”,但是我只想获取|之前的字符。 -“value1”。

这是我尝试过的方法,但是没有用。我做错了什么?
谢谢!



我想将此用于所有值,而不仅仅是一个字段。

最佳答案

您需要以下语句来获得[ColName]的那部分:

LEFT([ColName],INSTR([ColName],"|")-1)

如果要在同一记录集列中选择多个列,则可以将所有内容与如下所示进行合并:
 SELECT LEFT(ColName,INSTR(ColName,"|")-1) AS FirstValue From $TableName;
 UNION ALL
 SELECT LEFT(ColName2,INSTR(ColName2,"|")-1) AS FirstValue From $TableName;

如果要在多个列上使用它,请对sql的创建进行脚本编写。

关于MySQL在特定字符之前获取所有字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17395434/

10-11 04:17