我正试图在我使用的框架中生成一个动态属性,但我遇到了一些困难。。我有两个表加入了多对多关系(平台、标题和游戏)游戏有两个主键,titleid和platformid

select * from games where CONCAT(platformid,titleid) = 110

110只是一个例子,但是该记录确实存在1的平台和10的TITILID。
为什么这样不行?
注:我知道我可以用where子句(platformid=1,title=10)重写查询,但就我的框架而言,这不是一个选项。。。
编辑:修正了genreid错误(应该是titleid,但在我的实际代码中这是正确的…)
编辑2:这是一个场景:
select * where="platforms.id=#game.platformId# AND genres.id=#game.genreId# AND games.id<>#game.id#"

这是一个场景,当我想找到除当前选定的记录以外的其他记录。。。

最佳答案

首先,表不能有两个PRIMARY KEYs。您可能是指组合键。
其次,您的查询可以工作,但也可以匹配(platformid, genreid) = (11, 0)
您可以使用元组比较语法(当然,如果您的框架允许您这样做的话):

SELECT  *
FROM    games
WHERE   (platformid, genreid) = (1, 10)

或者进行更复杂的连接:
SELECT  *
FROM    games
WHERE   CONCAT_WS(',', platformid, genreid) = '1,10'

10-05 23:04