萬一遇上 $myArray 的個數很多時,會造成語法太長,無法執行怎麼辦?
- $myArray = array(1,2,3);
- $in = trim(str_repeat('?,', count($myArray)),',');
- $stm = $conn->prepare("SELECT * FROM table WHERE id IN ($in)");
- $stm->execute($myArray);
試試下面這個方法
如果是 not in,就加上一驚嘆號,變成 !FIND_IN_SET 就可以了
- $myArray = array(1,2,3);
- $in = implode(',', $myArray);
- $stm = $conn->prepare("SELECT * FROM table WHERE FIND_IN_SET(id, :inArray) ORDER BY name");
- $stm->bindParam('inArray', $in);
- $stm->execute();
- $myArray = array(1,2,3);
- $in = implode(',', $myArray);
- $stm = $conn->prepare("SELECT * FROM table WHERE !FIND_IN_SET(id, :inArray) ORDER BY name");
- $stm->bindParam('inArray', $in);
- $stm->execute();
沒有留言:
張貼留言