2016-09-19 9 views
1

私は 'タグ'テーブルの列(id、link)を持っています。リンク可能な値:regexpの使い方

id link 
1 index 
2 index/index 
3 index/.* 

私はインデックスを得たとき、私はID 1を選択する必要があり、:

index -> 1 
index/index -> 2 
index/test -> 3 

私はこのようなものを使用します。

SELECT * FROM tags WHERE 'index/test' REGEXP link LIMIT 1 

をしかし、それは私のIDを返します1、LIMITを削除すると2番目の行はid 3になります。私は完全な数学しか必要としません - id 3のみ。

+0

"タグ"テーブルとtou "id/link"テーブルのリンクはなんですか? – Delphine

+0

@Delphine "id/link"テーブルがタグテーブルです。 – fantua

+0

'' 'index/test''は#1と#3の両方にマッチします。 –

答えて

0

regexpについても、列idenテイラーが最初に来て、次に検索値が来ます。私はあなたが正しくなると、検索用語がインデックスまたはインデックス/インデックスでないときはいつでもid - > 3を得たいと思う。あなたの正規表現は、次のようなものになる可能性があります

SELECT * FROM tags WHERE link REGEXP '[^index/index|^index]$' 
+0

>検索用語がインデックスまたはインデックス/インデックスでない場合はいつでも これは単なる例です。パターン – fantua

+0

をこのRegExpと一緒に使う必要があります: '[^ index \/index |^index \/+] $'。それは "インデックス/インデックス"と "インデックス/ *"を受け入れます。*は特殊文字/レター/アッパー/ナンバーです。 – Delphine