数据库表中有A,B两个字段,数据类型均为int,
需要查询A、B两个字段是否关联?假设需查询值1与2是否关联。即,一条记录中不论是A为1,B为2,还是A为2,B为1均返回真。
能否有更好的数据库表设计思路?
还是不明白你所谓的关联是什么意思
按我的理解,不是应该a=1且b=1才是关联吗,a=1,b=2是怎么关联的,之间到底是什么逻辑,如果你说不清里面的逻辑,那语句也肯定是无从写起
如果只是a=1,b=2或a=2,b=1,你写个或不就行了
谢谢你的回答。
1与2可理解为商品编号,想查询 1与2是否关联,即只要数据表中存在一条记录,不论是(A为1,B为2),还是(A为2,B为1)均返回1与2具有关联。
以下为表的内容示例,共2条记录。(1与2)有关联,(3与1)有关联。(2与3)或(3与2)无关联。
A B
1 2
1 3
同时 也要能查询 1与哪些商品编号有关联关系。
1.若将在数据表中设A,B两个字段,查询使用不方便
查询是否关联 SQL语句如: where (A=1 and B=2) or (A=2 and B=1)
查询1与哪些有关联 SQL语句如:select b ... where (A=1); select A ... where (B=1); 将两者组合才实现
2.若将A.B按大小进行排序,组合成一个字符字段C。形如"1,2" 通过 字符串包含的方式,可以方便查询。
但这种方案无法利用索引实现查询速度快的优势。
以下为表的内容示例
字段C
1,2
1,3