2011-02-03 28 views
19

Tôi có một bảng có hai cột chuỗi: Url và ModelId. Tôi cần phải trả lại hồ sơ mà Url chứa ModelId, một cái gì đó như thế này:MySQL giống như một trường khác

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

trùng lặp có thể có của [Sử dụng LIKE% ..% với các giá trị trường trong MySQL] (http://stackoverflow.com/questions/4420554/use-like-with-field-values-in-mysql) –

Trả lời

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

thx, tìm kiếm ở đây mọi nơi –

+1

Về mặt kỹ thuật bạn có thể muốn thoát khỏi trường trong trường hợp nó có% trong đó: THÍCH CONCAT ('%', REPLACE (trường, '%', '\%'), '%') – dlo

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

truy vấn của bạn không có ý nghĩa. – Fr0zenFyr

+0

kể từ khi nào '+' làm việc cho chuỗi nối trong MySQL? – billynoah

0

Đây là truy vấn:

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

Bạn có thể không chỉ concat chuỗi, bạn phải cũng thoát khỏi trường từ% và _:

SELECT Id, Url, ModelId 
WHERE Url LIKE CONCAT('%', REPLACE(REPLACE(ModelId,'%','\%'),'_','\_'), '%'), '%') 
Các vấn đề liên quan