选择SQL中除一个字段外的所有字段


Select all except one field in SQL

我想创建一个函数,它可以选择数据库中的所有字符及其属性,除了执行该函数的字符。由于我是SQL的新手,我想知道是否有一种方法可以做到这一点:SELECT * FROM 'table name' EXCEPT 'the character executing the function'

例如,如果一个rpg游戏中的玩家想攻击某人,我想把他可以攻击的其他玩家的整个列表放在数据库中。但如果我做SELECT * FROM 'table name',他会在名单上,我不想让他攻击自己。。。

我在谷歌和这里搜索,但我只找到了选择除一列以外的所有内容的解决方案,但我希望这是一个字段。

感谢阅读。

您必须添加一个where子句:

SELECT * FROM 'tableName' WHERE characterId != 5

5,这里是执行函数的字符的ID

我建议您使用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
)