Mysql 在SQL语句中使用LIKE和equal
这个SQL语句有什么问题吗? 具体来说,在“LIKE”和deck_id=?”部分 它会正确搜索卡1和卡2,但不会搜索第三张。如果我拿出三张牌,那么二张牌就不行了。这让我相信在这方面有些事情是不对的 你能用这种方式使用LIKE with AND吗 期望的结果是Mysql 在SQL语句中使用LIKE和equal,mysql,Mysql,这个SQL语句有什么问题吗? 具体来说,在“LIKE”和deck_id=?”部分 它会正确搜索卡1和卡2,但不会搜索第三张。如果我拿出三张牌,那么二张牌就不行了。这让我相信在这方面有些事情是不对的 你能用这种方式使用LIKE with AND吗 期望的结果是 "SELECT * FROM cards WHERE (card1-3 LIKE ?) AND (Deck_id = decks_array)" 如果这有意义。您需要在您的条件周围添加(…),如下所示: "SELECT * FROM ca
"SELECT * FROM cards WHERE (card1-3 LIKE ?) AND (Deck_id = decks_array)"
如果这有意义。您需要在您的条件周围添加(…)
,如下所示:
"SELECT * FROM cards WHERE
( card_one LIKE ? OR card_two LIKE ? OR card_three LIKE ? )
AND ( deck_id = ? OR deck_id = ? OR deck_id = ? OR deck_id = ?
OR deck_id = ? OR deck_id = ? OR deck_id = ? )"
您需要在您的条件周围添加(…)
,如下所示:
"SELECT * FROM cards WHERE
( card_one LIKE ? OR card_two LIKE ? OR card_three LIKE ? )
AND ( deck_id = ? OR deck_id = ? OR deck_id = ? OR deck_id = ?
OR deck_id = ? OR deck_id = ? OR deck_id = ? )"
您可能应该在子句周围添加一些括号。混合使用
或和和并不能像你想的那样。使用一些偏执:(卡一样?卡二样?卡三样?
和(卡牌id=?或卡牌id=?或卡牌id=?或卡牌id=?或卡牌id=?或卡牌id=?或卡牌id=?或卡牌id=?或卡牌id=?)
P.S.将deck\u id=?或deck\u id=?或deck\u id=?
替换为deck\u id IN(?,?)
。你可能应该在你的从句周围加一些括号。混合或和和并不能做你想做的事。使用一些偏执语:(卡片一类、卡片二类或卡片三类?)
和
(甲板id=?或甲板id=?或甲板id=?或甲板id=?或甲板id=?或甲板id=?或甲板id=?或甲板id=?)
P.S.更换甲板id=?或组id=?或组id=?
带有组id的组(?,?)
。
"SELECT * FROM cards WHERE
(card_one LIKE ? OR card_two LIKE ? OR card_three LIKE ?)
AND deck_id in (id1,id2,id3)