mysql substring只获取字符

时间:2013-11-26 03:16:44

标签: mysql sql

我有这样的记录:

RCV0001
RCV0002
RTN0003
RTN0004
SLE0005
RCV0006

我想查询仅以'RCV'开头并仅显示记录的记录。

这是我到目前为止所尝试的:

select substring(documentnumber, 1)
LIKE '%RCV%'
from transactionheader

但我没有得到我想要的结果。有任何想法吗?我很乐意感谢你的帮助。感谢。

3 个答案:

答案 0 :(得分:4)

需要在where语句

上添加过滤器
select documentnumber
from transactionheader
where  documentnumber  LIKE 'RCV%'

答案 1 :(得分:1)

查询的选择列表中的表达式返回一个布尔值,因此查询将仅为表中的每一行返回0,1或NULL。

SELECT SUBSTRING(documentnumber, 1) LIKE '%RCV%'
  FROM transactionheader

对于表中的每一行,将检查documentnumber的第一个字符,看它是否包含字符串'RCV',这将永远不会成立。对于每一行,查询将返回0或NULL。


有多个查询将返回以“RCV”开头的文档编号。这是一个例子:

SELECT h.documentnumber
  FROM transactionheader h
 WHERE h.documentnumber LIKE 'RCV%'

WHERE子句指定将对每一行执行的条件测试,只返回“满足”谓词的行。

答案 2 :(得分:0)

您的原始查询没有WHERE子句,因此所有内容都被选中。另外,我建议改用REGEXP。这是我重写的例子。

SELECT substring(documentnumber, 1)
FROM transaction header
WHERE documentnumber REGEXP '^RCV'
;