【问题标题】:SQL get first instance of specific data from a rowSQL 从一行中获取特定数据的第一个实例
【发布时间】:2015-05-31 21:48:58
【问题描述】:

所以我有一个看起来像这样的 sql 表

我正在尝试使用 p1Name、p2Name 等将玩家名称插入到 Empty 的第一个实例中,并将其插入到 tableNumber 其中tableNumber=minTable 我真的是 sql 新手所以这可能是这样错了,但我对如何做到这一点感到困惑。 这是我试过的..

sql = "SELECT * as slot FROM Tables "
                                + "WHERE p1Name = 'Empty'" 
                                + " OR p2Name = 'Empty'"
                                + " OR p3Name = 'Empty'"
                                + " OR p4Name = 'Empty'"
                                + " OR p5Name = 'Empty'"
                                + " OR p6Name = 'Empty'"
                                + "AND tableNumber = '" + minTable + "'";

它给了我一个没有详细信息的 sql 异常错误,所以我不确定我在这里做错了什么,如果有人有任何见解,将不胜感激。

【问题讨论】:

  • 问题标题和 SQL 告诉您要检索但您说要插入?您是在尝试读取数据还是插入?
  • 试图取回 p1Name 之类的东西,以便我现在可以将其插入其中,所以如果 p1Name 为“空”,我希望它以某种方式取回该列,以便我可以插入它
  • 你能说清楚一点吗?你想插入什么到 tableNumber 因为它有一个值 (tableNumber=minTable) ?
  • 我想找到 tableNumber=minTable 的行并找到 p1Name p2Name 或 p3Name 等直到 p6Name 的第一个空实例

标签: java mysql sql jdbc


【解决方案1】:

试试这个:

sql = "SELECT * FROM Tables WHERE"
                            + "( p1Name = 'Empty'" 
                            + " OR p2Name = 'Empty'"
                            + " OR p3Name = 'Empty'"
                            + " OR p4Name = 'Empty'"
                            + " OR p5Name = 'Empty'"
                            + " OR p6Name = 'Empty' )"
                            + " AND tableNumber = '" + minTable + "'";

类似的东西。 ' * ' 字符表示“全部”。所以解释是:

表格中选择 所有数据,其中 (col1='x' OR col2='y' OR ..) AND coln = 'x'强>

【讨论】:

  • 我认为这是解决方案,还不是 100% 肯定,但现在我在代码的其他地方遇到了不同的错误,所以它正在取得进展 :) 哈哈
  • 你在写什么查询?
猜你喜欢
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
  • 2014-09-17
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多