多列中的sql搜索[关闭]
Posted
技术标签:
【中文标题】多列中的sql搜索[关闭]【英文标题】:sql search in multi columns [closed] 【发布时间】:2016-05-11 11:53:57 【问题描述】:我只想在 2016 年进行搜索。
select from products
WHERE year="2016"
and name like '%"& name &"%'
or size like '%"& Size &"%'
【问题讨论】:
其实你想做什么? 双引号用于标识符,单引号用于文字。 (在您的情况下,"2016"
被读取为具有该名称的列...)
请提供样本数据,希望输出。
听起来name
列包含多个名称值,size
同上,即违反 1NF(更不用说存储为文本的时间数据)。
【参考方案1】:
在您的 or
-ed 条件周围加上括号,并将年份的双引号更改为单引号(如 jarlh 所建议的那样):
select from products
WHERE year='2016'
and (
name like '%"& name &"%'
or size like '%"& Size &"%'
)
哦,如果这是 VB.NET,并且您从参数或其他东西中获得了 name
和 Size
,请确保您是 escaping them 以防止 SQL 注入(如果这还没有在其他地方完成) )。
【讨论】:
感谢您的回答。【参考方案2】:不需要双引号或LIKE
中的任何引号。
SELECT *
FROM products
WHERE year = '2016'
AND (name LIKE '%name%' OR size LIKE '%size%'
【讨论】:
以上是关于多列中的sql搜索[关闭]的主要内容,如果未能解决你的问题,请参考以下文章