2011-02-03 5 views
19

私は2つの文字列:UrlとModelIdを持つテーブルを持っています。MySQLは別のフィールドを好む

SELECT Id, Url, ModelId WHERE Url like "%ModelId%" 
+0

[LIKE%..% MySQLのフィールド値で](0120-325-002) –

答えて

56
SELECT Id, Url, ModelId 
WHERE Url LIKE CONCAT('%', ModelId, '%') 
+0

thx、どこでもこれを探しました –

+1

技術的には、それに%がある場合にフィールドをエスケープすることができます:LIKE CONCAT( '%'、REPLACE(フィールド、 '%'、 '\%')、 '%') – dlo

0
SELECT Id, Url, ModelId from <table> WHERE Url like '%' + ModelId + '%' 
+0

クエリが意味をなさない。 – Fr0zenFyr

+0

MySQLで文字列連結の '+'はいつ働くのですか? – billynoah

0

ここでクエリです:

SELECT Id, Url, ModelId WHERE Url LIKE CONCAT('%', ModelId, '%') 
0

あなただけの文字列をCONCATすることはできません、あなたがしなければならない、私はこのようなものは、URLがModelIdが含まれているレコードを返す必要がありますまた、%と_からフィールドをエスケープする:

SELECT Id, Url, ModelId 
WHERE Url LIKE CONCAT('%', REPLACE(REPLACE(ModelId,'%','\%'),'_','\_'), '%'), '%') 
関連する問題