【发布时间】:2014-06-20 06:06:33
【问题描述】:
我有以下情况:一个问题,5 个可能的答案。数据库有 5 列,其中每一列显然可以包含每个答案,但总是一次一个,每个答案一次只出现在一列中。
例如我有(为了解释目的,用语言名称简化):
language1 language2 language3 language4 language5
----------+-----------+---------+-----------+----------
english french german greek polish
当我想搜索语言为英语和希腊语的行时,我该怎么做?
我宁愿不使用
'WHERE english in (language1, language2, language3, language4, language5)
AND greek in (language1, language2, language3, language4, language5)';
因为这只是表格中的一个问题,而且正如您所见,每个问题都可以有很多答案;我有 65 多个问题,所以查询会变得非常庞大...
我正在寻找像 'where (english, greek) in (language1, language2, language3, language4, language5)' 这样的解决方案,尽管这会导致使用 (english, greek) 时出错。
这样的事情可能吗?如果可以,怎么做?
感谢您的任何想法、提示或提示!
【问题讨论】:
-
你能分享你的示例表结构或一些带结构的数据
-
这就是这样做的方法(使用“and”子句),也就是说,这取决于您的需求,但是具有 1 对 n 关系的中间数据表可能会更有效。另一个数据表将保存项目的 id 以及与该项目关联的所有语言的 id。
-
感谢您的 cmets,我想我会选择发布的 netadictos。我认为这是体面地做到这一点的唯一方法。希望这次我能做对:-)