2012-03-07 39 views
30

Tôi đang gặp sự cố khi sử dụng ký tự đại diện % với truy vấn MySQL.MySQL bắt đầu bằng vấn đề tìm kiếm

http://www.w3schools.com/sql/sql_like.asp

Sau khi đọc bài viết đó, tôi đang sử dụng % và không nhận được khá những gì tôi đã mong đợi.

tôi có một loạt các giá trị, chẳng hạn như

1_1 
1_2 
2_1 
2_2... etc 

bao gồm

11_1 
11_2 

Bây giờ, trong một số trường hợp tôi muốn quay trở lại đặc biệt những người có giá trị = 11_2, hoặc 1_2, vv tác phẩm này fine

WHERE fieldName = '11_2' 

vv ... như mong đợi

Tuy nhiên, trong một số trường hợp tôi muốn tìm tất cả các mục mà bắt đầu với một 1 hoặc tất cả các mục mà bắt đầu với 11

Từ liên kết W3Schools, tôi đã mong

WHERE fieldName LIKE '1_%' 

Để tìm bất cứ điều gì bắt đầu với 1_ cụ thể, do đó, trong ví dụ của tôi, trở về:

1_1 
1_2 

NHƯNG, nó cũng trả về

11_1 
11_2 

Tại sao điều này? Và làm thế nào tôi có thể vượt qua nó?

Trả lời

58

Dấu gạch dưới là ký tự đại diện cho một ký tự đơn. Bạn sẽ cần phải thay đổi SQL của bạn để một cái gì đó như:

WHERE fieldName LIKE '1%' 

Hoặc bạn có thể thoát khỏi gạch

WHERE fieldName LIKE '1\_%' 
Các vấn đề liên quan