2017-01-18 19 views
-2

列に部分文字列値を持つテーブルがあり、入力文字列に部分文字列が含まれているかどうかを確認するクエリを作成したいとします。列内の部分文字列を検索するクエリ

私のテーブルには、次のようになります。私の入力がwww.ebay.comまたはhttps://www.ebay.comまたはwww.qa.ebay.comまたはwww.dev.ebay.comのようになります

| company | host  | 
| ------- | ---------- | 
| ebay | ebay.com | 
| google | google.com | 
| yahoo | yahoo.com | 

..

入力があれば、最初のレコードを返したい。

私はCHARINDEX、INSTRを見てみましたが、逆の作業です。私のシナリオでは、テーブル内で検索する部分文字列と入力として実際の文字列を持っています。

何か助けていただければ幸いです。

+1

互換性のないデータベースタグを削除しました。実際に使用しているデータベースにタグを付けてください。 –

+1

おそらくMySQLドキュメントの部分文字列を検索しましたか? – newGuy

+0

私の入力がXの場合は、出力をYにします。 – Metropolis

答えて

2

これにはlikeを使用できますが、文字列の連結も必要です。

@inputstringは、あなたが入力している文字列である
select t.* 
from t 
where @inputstring like concat('%.', t.host) 

:ANSI標準のSQLでは、これは次のようになります。

注:通常、||(標準)または+である連結挿入操作を使用することもできます。

1

あなたがそうのようなSQLのワイルドカードを使用することができます。

SELECT * FROM table WHERE host LIKE '%ebay.com'; 
0

あなたは、この演算子のように使用して達成することができます。

* * yourtableから選択* どこですか? concat( '%'、company、 '%')のようになります。

パラメータ?入力してください。このため

0

ゴー:

SELECT * FROM table WHERE host LIKE '%SearchString%' 

それは、検索文字列を含むすべての行を引き出します。

関連する問題