СОДЕРЖИТ с несколькими условиями по нескольким столбцам

Я пытаюсь выполнить, СОДЕРЖИТ запрос с несколькими условиями по нескольким столбцам, как это:

SELECT ID
FROM Table
WHERE CONTAINS((Data1,Data2,Data3), '"foo" & "bag" & "weee"')

Однако этот запрос не ведет себя как, я хочу его к: Я хочу, чтобы это возвратило все записи, для которых все условия появляются, по крайней мере, однажды в по крайней мере одном из столбцов, как это:

SELECT ID
FROM Table
WHERE CONTAINS((Data1,Data2,Data3), '"foo"')
AND CONTAINS((Data1,Data2,Data3), '"bag"')
AND CONTAINS((Data1,Data2,Data3), '"weee"')

В то время как этот запрос возвращает корректные результаты, ему нужен отдельный И-ПУНКТ для каждого термина. Существует ли способ выразить тот же запрос единственным где-пунктом как в верхнем примере? Это было бы удобно когда включая запрос в (фиксированной) функции.

8
задан dbaw 10 February 2010 в 14:26
поделиться

1 ответ

Если изображение чисто декоративное, то его использование в качестве фонового изображения может быть более семантическим решением. Затем можно указать положение фона

background-position: center center;

Если он не является декоративным и представляет собой ценную информацию, то тэг img оправдан. То, что вам нужно сделать в таком случае стиль содержащий div со следующими свойствами:

div{
    display: table-cell; vertical-align: middle 
}

Подробнее об этой технике читайте здесь . Сообщается, что не работает на IE6/7 (работает на IE8).

-121--898814-

Класс процесса имеет метод Kill ()

-121--231434-

SQL Server однажды вел себя таким путем, но он считался ошибкой и «исправлен».

Необходимо создать индекс FULLTEXT на вычисляемом столбце:

DROP TABLE t_ft
CREATE TABLE t_ft (id INT NOT NULL,
        data1 NVARCHAR(MAX) NOT NULL, data2 NVARCHAR(MAX) NOT NULL, data3 NVARCHAR(MAX) NOT NULL,
        totaldata AS data1 + ' ' + data2 + ' ' + data3,
        CONSTRAINT pk_ft_id PRIMARY KEY (id))

CREATE FULLTEXT INDEX ON t_ft (totaldata LANGUAGE 1033) KEY INDEX pk_ft_id

INSERT
INTO    t_ft
VALUES  (1, 'foo bar', 'baz', 'text')

INSERT
INTO    t_ft
VALUES  (2, 'foo bar', 'bax', 'text')


SELECT  *
FROM    t_ft
WHERE   CONTAINS (*, 'foo AND baz') 

В MySQL , напротив, полнотекстовый индекс ищет и совпадает по всем столбцам, и это документированное поведение.

9
ответ дан 5 December 2019 в 18:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: