2010-10-05 27 views
15

Tôi có cơ sở dữ liệu SQL Server 2005, trong đó tôi có một số bảng chứa văn bản tiếng Ả Rập. Kiểu dữ liệu cho các trường đó là NVARCHAR(n).vấn đề với mệnh đề WHERE khớp với chuỗi tiếng Ả Rập

Văn bản tiếng Ả Rập bên trong bảng hiển thị chính xác và khi chọn, chúng xuất hiện chính xác.

Vấn đề là tìm kiếm kết quả văn bản tiếng Ả Rập ở 0 hàng.

select * from table_name 
where name='arabic_text' 

Thao tác này không có hàng, trong đó có tên có giá trị này.

Bạn có thể vui lòng hướng dẫn tôi cách viết truy vấn không?

+4

Tôi tin rằng bạn phải sử dụng 'WHERE name NHƯ N '[thay bằng văn bản arabic]'' –

+1

@OMG Ngựa con Bạn có phải làm như thế nào? –

+0

cảm ơn bạn nó hoạt động goood –

Trả lời

25

Thử thêm N trước văn bản, ví dụ:

select * from table_name 
where name=N'arabic_text' 
+0

cảm ơn bạn nó hoạt động goooooooooooooooooood –

+3

Cần tiền tố so sánh thử nghiệm với "N" bên ngoài dấu nháy đơn là vì kiểu dữ liệu (NVARCHAR), khi tìm kiếm bằng ký tự không phải ASCII (đó là lý do bạn N là viết tắt của "Nationalized", nhưng có nghĩa là UTF (8 tôi giả định) –

+0

có một vấn đề khác với sqldatareader khi condtion trong lệnh sql là arabic như thế này select * từ người dùng nơi nam = N 'văn bản arabic' này không lấy bất kỳ dữ liệu mặc dù có một tên người dùng với giá trị arabic này vì vậy giải pháp là gì –

1

select * from table_name nơi tên như N '% arabic_text%' sẽ làm việc ở đây

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