我正在尝试创建一个搜索查询,它将采用逗号分隔的未知长度列表(搜索),并从表格(tableA)中选择tableA中的所有行,其中tableA中的某些列值与搜索列表中的项目1匹配并且tableA中的某些列值与搜索列表中的item2和...以逗号分隔列表中的itemN相匹配。如果我知道列表的长度,我知道怎么做,但如果列表是无界的,则不知道。
如果我通过OR组的OR条件知道列表的长度,我就会这样做。虽然这个解决方案不能扩展到N个项目,但我不确定如何使解决方案可扩展
SELECT * FROM tableA
WHERE(
REGEXP_LIKE(tableA.first_name, ('Thing1'), 'i') OR
REGEXP_LIKE(tableA.last_name, ('Thing1'), 'i') OR
REGEXP_LIKE(tableA.email_name, ('Thing1'), 'i')
)
AND
(
REGEXP_LIKE(tableA.first_name, ('Thing2'), 'i') OR
REGEXP_LIKE(tableA.last_name, ('Thing2'), 'i') OR
REGEXP_LIKE(tableA.email_name, ('Thing2'), 'i')
)
AND
.
.
.
AND
(
REGEXP_LIKE(tableA.first_name, ('ThingN'), 'i') OR
REGEXP_LIKE(tableA.last_name, ('ThingN'), 'i') OR
REGEXP_LIKE(tableA.email_name, ('ThingN'), 'i')
);
我想要实现的主要目标是,当我在搜索字段中输入更多项目时,返回的是任何行,对于我在搜索字段中输入的每个项目,该行中都存在一列就像项目