我要做的是检查特定列是否包含来自另一个特定列的子字符串。
我目前的代码是;
<!DOCTYPE html>
<html>
<head>
<script src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/angular-animate/angular-animate.js"></script>
<script src="/bower_components/angular-bootstrap/ui-bootstrap.js"></script>
</head>
<body>
....
</body>
</html>
我需要查看SELECT *
FROM myLog
WHERE header LIKE SUBSTRING(body,1,5)
列的前5个字符是否在同一行的body
列中。
答案 0 :(得分:0)
您错过了%
符号,这是一张在LIKE
子句中与WHERE
一起使用的外卡。此处的子句指示header
应包含body
开头的前5个字符。
SELECT *
FROM myLog
WHERE header LIKE '%' + SUBSTRING(body,1,5) + '%'
您也可以使用LEFT
功能代替SUBSTRING
。
SELECT *
FROM myLog
WHERE header LIKE '%' + LEFT(body,5) + '%'
查询运行但不返回任何结果,但是如果我运行更具体的内容,例如; SELECT body,header FROM myLog WHERE header LIKE&#39;%d6453%&#39 ;;它会返回一些行。这些行也有d6453作为正文的前5个字符
听起来你可能在body
列中有空格。尝试将LTRIM
添加到查询中,这样可以删除左侧的空白区域。
SELECT header, body
FROM myLog
WHERE header LIKE '%' + LEFT(LTRIM(body),5) + '%'