как искать по всему полю в sql - PullRequest
0 голосов
/ 06 февраля 2009

Например, мой стол здесь >>

CREATE TABLE tProject(  
name nvarchar(1000),
Goal ntext, 
Activities ntext,
Result ntext,
MonName nvarchar(1000),
MonGoal ntext,
MonActivities ntext,
MonResult ntext,
TotalFund nvarchar(100))

как выполнить поиск по всем полям ntext и nvarchar за один раз.

помогите мне, пожалуйста

Ответы [ 2 ]

0 голосов
/ 06 февраля 2009

У вас действительно есть имена длиной 1000 символов? Действительно ли столбцы MonName, MonGoal и т. Д. Действительно соответствуют названию понедельника, цели понедельника? Если так, они должны быть перемещены в другую таблицу и связаны с этим. TotalFund звучит больше как числовой столбец, чем nvarchar. В зависимости от ответов на эти вопросы вы можете начать с изменения структуры базы данных после изучения некоторых базовых методов проектирования БД, пока не стало слишком поздно.

Во всяком случае, я думаю, это то, что вы ищете:

SELECT
    name,
    Goal 
    Activities,
    Result,
    MonName,
    MonGoal,
    MonActivities,
    MonResult,
    TotalFund
FROM
    tProject
WHERE
    name LIKE '%' + @search_string + '%' OR
    Goal LIKE '%' + @search_string + '%' OR
    Activities LIKE '%' + @search_string + '%' OR
    Result LIKE '%' + @search_string + '%' OR
    MonName LIKE '%' + @search_string + '%' OR
    MonGoal LIKE '%' + @search_string + '%' OR
    MonActivities LIKE '%' + @search_string + '%' OR
    MonResult LIKE '%' + @search_string + '%' OR
    TotalFun LIKE '%' + @search_string + '%'

Вы также можете заглянуть в полнотекстовый поиск строк, хотя я не знаю, упростит ли это его.

0 голосов
/ 06 февраля 2009

Если вы имеете в виду создание команды выбора для таблицы, соответствующей нескольким столбцам.

select * from tProject where name like '%text%' or Goal like '%text%' or...;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...