我想创建一个函数,在db中选择所有具有属性的字符,除了执行此函数的那个,因为我是SQL的新手,我想知道是否有办法要做到这一点:SELECT * FROM 'table name' EXCEPT 'the character executing the function'
。
例如,如果rpg游戏中的玩家想要攻击某人,我想将其他玩家的整个列表放入他可以攻击的数据库中。但是,如果我SELECT * FROM 'table name'
,他将在列表中,我不希望他自己攻击......
我在谷歌和这里搜索,但我只找到了除列之外的所有选择的解决方案,但我想要一个字段。
感谢阅读。
答案 0 :(得分:2)
你必须添加一个where子句:
SELECT * FROM 'tableName' WHERE characterId != 5
5这里是执行函数的字符的ID
答案 1 :(得分:2)
我建议您使用sub query
。获取已执行功能的所有名称&将这些名称保留在NOT IN
中。有关信息,请保留执行该功能的名称的记录。 NOT IN
示例
SELECT * FROM table_name WHERE name NOT IN (
SELECT name FROM table_name_where_executed_name_stored WHERE executed = 1
)