Sql выбрать строки, содержащие часть строки - PullRequest
12 голосов
/ 12 апреля 2010

Я хочу написать процедуру сравнения (t-sql) для сайта seo.

У меня есть таблица с полем 'url' (nvarchar ()), которая содержит часть URL сайта. Пример: ' mysyte.com /? Id = 2 '. Также эта таблица для каждого URL содержит метаданные, которые мне нужно извлечь.

Основная проблема в том, что полный URL на сайте выглядит как ' mysyte.com /? Id = 2 & region = 0 & page = 1 ', и мне просто нужно игнорировать все, кроме URL в таблице:

Я имею в виду: «mysyte.com/?id=2» => является частью «mysyte.com/?id=2&region=0&page=1'

».

Ответы [ 3 ]

52 голосов
/ 12 апреля 2010

Вы можете использовать оператор LIKE для сравнения содержимого строки T-SQL, например,

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

Символ процента '%' является подстановочным знаком - в этом случае он говорит, что возвращает все записи, где [field] минимум содержит значение "stringtosearchfor".

6 голосов
/ 12 апреля 2010
SELECT *
FROM myTable
WHERE URL = LEFT('mysyte.com/?id=2&region=0&page=1', LEN(URL))

Или используйте CHARINDEX http://msdn.microsoft.com/en-us/library/aa258228(v=SQL.80).aspx

5 голосов
/ 12 апреля 2010

вы можете использовать CHARINDEX в т-sql.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...