Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在SQL语句中使用LIKE和equal_Mysql - Fatal编程技术网

Mysql 在SQL语句中使用LIKE和equal

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

这个SQL语句有什么问题吗? 具体来说,在“LIKE”和deck_id=?”部分

它会正确搜索卡1和卡2,但不会搜索第三张。如果我拿出三张牌,那么二张牌就不行了。这让我相信在这方面有些事情是不对的

你能用这种方式使用LIKE with AND吗

期望的结果是

"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)