首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL在特定字符之前获取所有字符

问MySQL在特定字符之前获取所有字符
EN

Stack Overflow用户
提问于 2013-06-30 22:29:50
回答 2查看 20.6K关注 0票数 8

我有一个表,在这里提取一些值,一个列值可以包含“value 1\x/value 2\{e76f}(Value1),但我只想在”x“之前得到字符。

这是我试过的,但没用..。我做错了什么?谢谢!

$sql = "SELECT * LEFT(' LIKE ',定位于$tablename中的(‘Parent’,‘LIKE’)-1,Parent= '0‘,并按Order ASC键入类似的'top’ORDER‘;

我想把它用于所有的值,而不仅仅是一个字段。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-30 22:32:52

您需要以下语句才能获得ColName的这一部分:

代码语言:javascript
复制
LEFT([ColName],INSTR([ColName],"|")-1)

如果要在同一记录集列中选择多个列,则可以将所有列与以下内容合并:

代码语言:javascript
复制
 SELECT LEFT(ColName,INSTR(ColName,"|")-1) AS FirstValue From $TableName;
 UNION ALL
 SELECT LEFT(ColName2,INSTR(ColName2,"|")-1) AS FirstValue From $TableName;

如果要在多个列上使用此操作,请编写创建sql的脚本。

票数 13
EN

Stack Overflow用户

发布于 2013-06-30 22:33:36

有两件事:(1)您的*和您试图使用LEFT的表达式之间没有逗号;(2)您将like放在引号中,因此函数使用的是常量值like,而不是名为like的列。试着把like放在后面。

代码语言:javascript
复制
SELECT *, LEFT(`Like`, LOCATE('|', `Like`)-1)
...

还可以为此使用MySQL SUBSTRING_INDEX函数:

代码语言:javascript
复制
SELECT *, SUBSTRING_INDEX(`Like`, '|', 1)
...
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17395434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档