1

SQLでは、文字としてのスラッシュ「/」が1回だけ存在するすべての行を取得したいと思います。

例:

[table1]
id | path_name  |
 1 | "/abc/def/"|
 2 | "/abc"     |
 3 | "/a/b/cdfe"|
 4 | "/hello"   |

select * from table1 where path_name=.... ;

したがって、この例では、2行目と4行目だけが必要です...

このステートメントを作成するにはどうすればよいですか?

4

5 に答える 5

3
where path_name like '%/%' and path_name not like '%/%/%'

また

where len(path_name) = len(replace(path_name,'/','')) + 1
于 2013-02-28T12:21:45.087 に答える
1

スラッシュが1つだけの式を見つけるには:

where path_name like '%/%' and not path_name like '%/%/%'

説明:最初のものは、スラッシュが少なくとも1回表示されることを確認します。2つ目は、2回表示されないことを確認します。

少なくとも1回、ただし2回未満は、正確に1回です。

スラッシュで始まるものだけが必要な場合は、最初のパターンをに変更する必要があります'/%'

于 2013-02-28T12:22:12.870 に答える
0
select * from table1 where path_name not like '/%/%' and path_name not like '/%/';
于 2013-02-28T12:23:46.727 に答える
0

または、/を何も置き換えなかった後の長さを数えます。
WHERE ( LENGTH(col) - LENGTH(REPLACE(col, '/', '')) )=1

( SQL列の文字のインスタンスをカウントする方法に感謝します)

于 2013-02-28T12:27:26.413 に答える
0
1.select * from Table1 where len(path_name)-len(replace(path_name,'/',''))= 1

2.select * from table1 where len(path_name)= len(replace(path_name,'/',''))+1

3.select * from table1 where path_name like '%/%' and path_name not like'%/%/%'
于 2017-10-17T07:11:44.783 に答える