Преобразование поиска из SQL Server в MySQL - PullRequest
1 голос
/ 17 января 2011

Мне нужно преобразовать этот код из SQL Server в MySQL

IF IsNull(@SearchText, '') <> '' BEGIN
SET @SearchText = '%' + @SearchText + '%'

SELECT NewsID,DeptID,DeptName,Title,Details ,NewsDate,img 
FROM @tbSearchtextTb
WHERE IsNull(Title,'')+IsNull(Details,'') LIKE @SearchText END

, этот код будет искать в моем поисковом слове в следующих столбцах: Название, Подробности.

Я пытался преобразовать этоСтрока, но у меня было много ошибок:

это мои неудачные попытки

IF ISNULL(SearchText,'') <> '' THEN
SELECT CatID,CatTitle,CatDescription,CatTitleAr,CatDescriptionAr,PictureID,Published,DisplayOrder,CreatedOn
FROM tmp
WHERE CatTitle + CatDescription + CatTitleAr + CatDescriptionAr
LIKE  $SearchText;

и этот

IF $SearchText IS NOT NULL THEN
SELECT CatID,CatTitle,CatDescription,CatTitleAr,CatDescriptionAr,PictureID,Published,DisplayOrder,CreatedOn
FROM tmp
WHERE ISNULL(CatTitle,'') +ISNULL(CatDescription ,'') +ISNULL(CatTitleAr ,'') +ISNULL(CatDescriptionAr,'') LIKE  $SearchText;

и многие другие, но я не смог найтилюбой.

поэтому, если вы знаете, пожалуйста, дайте мне знать, спасибо и наилучшими пожеланиями.

Ответы [ 2 ]

2 голосов
/ 17 января 2011

вы можете использовать полнотекстовый поиск в MySQL

http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

1 голос
/ 17 января 2011

Версия SQL Server также может быть написана:

IF @SearchText <> '' -- null is implicitly <> ''
BEGIN

SELECT NewsID,DeptID,DeptName,Title,Details ,NewsDate,img 
FROM @tbSearchtextTb
WHERE IsNull(Title,'')+IsNull(Details,'') LIKE '%' + @SearchText + '%'

END

IsNull - это IFNull в MySQL. Строки объединяются с помощью Concat в MySQL Null неявно '' в concat

IF SearchText <> '' THEN  # << again, this test is sufficient
    SELECT
        CatID,CatTitle,CatDescription,CatTitleAr,CatDescriptionAr,
        PictureID,Published,DisplayOrder,CreatedOn
    FROM tmp
    WHERE Concat(CatTitle, CatDescription, CatTitleAr, CatDescriptionAr)
    LIKE Concat('%',$SearchText,'%');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...