2013-09-28 368 views
5

tôi đã cơ sở dữ liệu Mà này chứa mã sản phẩm nhưTìm kiếm chuỗi mysql db có thể có không gian, có trong một chuỗi khác, vv

EXA 075 11112 
0423654 
3 574 662 123 
JOLA 22354 5 
LUCS 2245 785 

tôi sử dụng một truy vấn với% NHƯ% vào danh sách các sản phẩm mathing một chuỗi ký bởi người sử dụng ví dụ như "22" sẽ liệt kê

JOLA 22354 5 
LUCS 2245 785 

vấn đề là người dùng không nhất thiết phải biết định dạng của mã, vì vậy nó loại trong 07.511.112 và đầu ra là không, bởi vì "EXA 075 11112" không khớp với% LIKE%.

Có cách nào để xây dựng truy vấn cắt tất cả không gian khỏi trường sản phẩm trước khi tìm kiếm xảy ra không, sau đó tìm kiếm theo chuỗi cũng được cắt bớt khoảng trắng bằng% LIKE%? Tôi đoán nó nên khớp với tất cả các mục. Hoặc là có một cách khác ? Tôi không thể chạy thay thế '', '' trên cột, các mã phải được giữ nguyên như hiện tại.

+1

tôi sẽ thêm một cột mà không có không gian, chỉ dành riêng cho tính năng tìm kiếm. – GolfWolf

+0

@ w0lf nói gì. Và có thể xem FULLTEXT để xử lý các tìm kiếm như vậy – leon

Trả lời

3

Bạn có thể sử dụng thay thế chức năng

select * 
from mytable 
where REPLACE(`productcode` , ' ' , '') like '%searchparam%'