2012-03-04 50 views
6

Tôi có một bảng mysql 5 với một lĩnh vực char giữMySQL chọn sử dụng ký tự đại diện (nhưng ký tự đại diện trong lĩnh vực)

DOG 
DOUG 
CAT 
MOUSE 

Bây giờ tôi muốn CHỌN về lĩnh vực này, việc tìm kiếm bất kỳ hàng nơi lĩnh vực đang tồn tại trong một chuỗi , như "DOGGY". (Điều này trái ngược với cách bạn thường sử dụng ký tự đại diện). Vì vậy, tôi muốn chọn một cái gì đó như: CHỌN TỪ KHI CÓ L SUBNH VỰC "DOGGY"

Điều này có thể không?

+0

Ông có thể giải thích thêm những gì bạn đang cố gắng để làm gì? – menacingly

+0

Cụ thể, bạn có muốn tìm các hàng có trường có chuỗi con "doggy" (nghĩa là văn bản có chứa một số chữ cái trong "doggy" nhưng không nhất thiết phải là tất cả các chữ cái)? Hay bạn muốn tìm các hàng có "doggy" là một chuỗi con của trường (tức là trường có chứa từ "doggy" cùng với văn bản khác có thể)? Trong trường hợp đầu tiên, truy vấn của bạn sẽ khớp với các hàng có văn bản như "chó", "chó săn" và "con mèo". Trong trường hợp thứ hai, truy vấn của bạn sẽ khớp với các hàng có văn bản như "hello doggy" và "chó đó đang làm gì ở đó?" – octern

+0

Tôi muốn tìm các hàng trong đó các trường chứa chuỗi con của từ mà tôi đang tìm kiếm. Vì vậy, trong ví dụ trên, lựa chọn của tôi sẽ trả về hàng có "DOG" trong trường. –

Trả lời

5

Bạn sẽ có thể sử dụng LOCATE() để đạt được điều này:

SELECT * FROM MyTable WHERE LOCATE(MyField, 'DOGGY') != 0; 
+1

Downvoter, hãy bình luận. –

+2

Chỉ cần chơi với chức năng này và dường như làm việc theo yêu cầu/upvote – Ing

14
select * from mytable where 'doggy' like concat('%',mycol,'%') 
+0

\ * tâm thổi * * - Tôi sử dụng LIKE tất cả các thời gian nhưng nó không bao giờ xảy ra với tôi để đảo ngược các thông số như thế này, và tôi đã phải thử nó trước khi Tôi đã tin rằng nó có thể hoạt động. Tôi đoán tôi chỉ là một noob, nhưng tôi nghĩ rằng đây là một câu trả lời khá tuyệt vời. – octern

Các vấn đề liên quan