2010-04-12 26 views
10

Tôi muốn viết một quy trình so sánh (t-sql) cho trang web seo.Sql chọn các hàng có chứa một phần của chuỗi

Tôi có một bảng có trường 'url' (nvarchar()) có chứa một phần của url của trang web. Ví dụ: 'mysyte.com/?id=2'. Ngoài ra bảng này cho mỗi url chứa siêu dữ liệu, mà tôi cần phải trích xuất.

Vấn đề chính là url đầy đủ trên trang web trông giống như 'mysyte.com/?id=2 & khu vực = 0 & page = 1', và tôi chỉ cần bỏ qua everething, trừ url trong bảng:

tôi muốn nói: 'mysyte.com/?id=2' => là một phần của 'mysyte.com/?id=2 & khu vực = 0 & page = 1'

Trả lời

4

bạn có thể sử dụng CHARINDEX trong t-sql.

select * from table where CHARINDEX(url, 'http://url.com/url?url...') > 0

45

Bạn có thể sử dụng toán tử THÍCH để so sánh nội dung của một chuỗi T-SQL, ví dụ

SELECT * FROM [table] WHERE [field] LIKE '%stringtosearchfor%'. 

Tỷ lệ nhân vật '%' là một giấy carton hoang dã trong trường hợp này nó nói trả lại bất kỳ hồ sơ, nơi [trường] ít nhất chứa giá trị "stringtosearchfor".

+1

Để tìm kiếm chuỗi bắt đầu bằng một tiền tố nhất định, bạn có thể thực hiện LIKE 'prefix%' – tschwab

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