我正在尝试在我正在使用的框架中生成一个动态属性,但我遇到了一些困难..我有两个表加入了多对多关系(平台、标题和游戏)游戏有两个主键, titleid 和 platformid
select * from games where CONCAT(platformid,titleid) = 110
Run Code Online (Sandbox Code Playgroud)
110只是一个例子,但是记录确实存在,平台为1,titleid为10...
为什么不行?
PS:我知道我可以用 where 子句(platformid = 1 AND title = 10)重写查询,但就我的框架而言,这不是一个选项......
编辑:修正了流派错误(应该是titleid,但在我的实际代码中这是正确的......)
编辑 2:这是一个场景:
select * where="platforms.id=#game.platformId# AND genres.id=#game.genreId# AND games.id<>#game.id#"
Run Code Online (Sandbox Code Playgroud)
这是我想查找当前选定记录以外的记录时的一种情况...
首先,一张表不能有两个PRIMARY KEYs。您可能指的是复合键。
其次,您的查询可以工作,但也会匹配(platformid, genreid) = (11, 0).
您可以使用元组比较语法(当然,如果您的框架允许您这样做):
SELECT *
FROM games
WHERE (platformid, genreid) = (1, 10)
Run Code Online (Sandbox Code Playgroud)
或者进行更复杂的串联:
SELECT *
FROM games
WHERE CONCAT_WS(',', platformid, genreid) = '1,10'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3267 次 |
| 最近记录: |