使用sql查询在sql表中查找子字符串

时间:2014-03-17 19:44:25

标签: sql sql-server substring

我的sql表中有一个“name”列。在我的SQL查询中,我想获取列“name”是我输入字符串的子串的所有记录。

为了exapmle,用户输入“我的名字是Davivd”,然后我想获取姓名为David的所有记录。 P.S:用户可以输入类似“大卫在这里”的内容。

任何知道的人请告诉我。 Thanku

3 个答案:

答案 0 :(得分:1)

您的问题有点不清楚,但如果您有名称列,则可以使用CHARINDEX函数将其作为任何字符串的一部分找到:

示例:

DECLARE @TABLE TABLE (ID INT IDENTITY(1,1), NAME VARCHAR(100))
INSERT INTO @TABLE(NAME)
SELECT 'DAVID' UNION ALL
SELECT 'GOLIATH' UNION ALL
SELECT 'DAVE' UNION ALL
SELECT 'MARTIN'

SELECT *
FROM @TABLE
WHERE CHARINDEX(NAME,'DID YOU EVER READ THE STORY ABOUT DAVID AND GOLIATH?') > 0

SELECT *
FROM @TABLE
WHERE CHARINDEX(NAME,'MY FAVOURITE MOVIE DIRECTOR IS MARTIN SCORCESE. I LOVE HIS GLASSES.') > 0

答案 1 :(得分:1)

一个简单的观点是:

DECLARE @x VARCHAR(255)
SET @x = 'My name is David'
SELECT a FROM tablex WHERE @x LIKE '%' + tablex.name + '%'

这反转了@ shortspider的回应。

答案 2 :(得分:0)

尝试:SELECT * FROM table_name WHERE name LIKE '%David%'