搜索有条件的字符串

时间:2010-12-17 15:48:19

标签: sql sqlite mysql

我的表名是字符串。我需要创建一个sql语句,搜索子节点到节点而不向子节点查找子节点。是否可以使用LIKE和一些通配符来实现此目的?您可以在下面根据我的搜索字符串看到我需要获得的结果的一些示例。

搜索字符串是/ home 然后应该返回以下条目

/home/something
/home/somethingElse
but not
/home/something/foo
/home/something/bar
/home/somethingElse/foo

但是如果搜索字符串是/ home / something

These should be returned
/home/something/foo
/home/something/bar

2 个答案:

答案 0 :(得分:2)

 SELECT name FROM table
     WHERE name LIKE '/home/%' AND name NOT LIKE '/home/%/%'

应过滤掉其下的第二级节点。

答案 1 :(得分:1)

我可能会搜索除实际关键字之外的斜杠数量。所以第一个用1-2 / s来搜索/ home

第二个是/ home /有2-3个斜线的东西。

我没有面向我的sql,但我会为你准备一些示例代码。

编辑:

CREATE FUNCTION [dbo].[ufn_CountChar] ( @pInput VARCHAR(1000), @pSearchChar CHAR(1) )
RETURNS INT
BEGIN

RETURN (LEN(@pInput) - LEN(REPLACE(@pInput, @pSearchChar, '')))

END
GO

这个小函数可以很好地计算字符串中的斜杠数。

享受

希望这有帮助, 欢呼声,