MYSQL получить данные между и условием или условием

Я пытаюсь получить данные в виде JSON между двумя идентификаторами, которые имеют идентификатор пользователя либо Get['id'] или пользователь, который следует Get['id'] От других Таблица.

Мой URL — HTTP: // локальный / адитйа / м / Логин ID = 1&&начать = 6

if(isset($_GET['start'])) {
$query2 = "SELECT * FROM post WHERE (id BETWEEN '".$_GET['start']."' AND '".$_GET['start']."' + 3) AND userid = '".$_GET['id']."' OR userid IN (SELECT userid FROM frndlist WHERE followers = '".$_GET['id']."') "; }

Данные поступают в промежутке между 6 и 9 идентификаторами, но почему 5 тоже идет?
(постить в json как id) !!

{
"result":[
{
"like":"</a>",
"like_no":"0</span>",
"time":"th , ",
"pro_pic":"members/[email protected]/WIN_20150115_125206.JPG",
"userid":"2",
"fname":"Aditya",
"lname":"Raj",
"share":"innovation",
"title":"tasty",
"postid":"5",
"postimg":"http://192.168.43.142/aditya/mfoodora/members/[email protected]/download-371493367.jpg",
"desc":"hejgfiyrivbgdyvdgvgjdehuidkjvdakllj",
"comm_no":"0",
"comment":"</a>",
"add":"</a>"},
{
"like":"</a>",
"like_no":"0</span>",
"time":"th , ",
"pro_pic":"members/[email protected]/WIN_20150115_125206.JPG",
"userid":"2",
"fname":"Aditya",
"lname":"Raj",
"share":"trick",
"title":"tasty",
"postid":"6",
"postimg":"",
"desc":"hejgfiyrivbgdyvdgvgjdehuidkjvdakllj",
"comm_no":"0",
"comment":"</a>",
"add":"</a>"},
{
"like":"</a>",
"like_no":"1</span>",
"time":"Mar 24th",
"pro_pic":"members/[email protected]/WIN_20150115_125206.JPG",
"userid":"2",
"fname":"Aditya",
"lname":"Raj",
"share":"recipe",
"title":"tasty",
"postid":"7",
"postimg":"",
"desc":"hejgfiyrivbgdyvdgvgjdehuidkjvdakllj",
"comm_no":"0",
"comment":"</a>",
"add":"</a>"},
{
"like":"</a>",
"like_no":"0</span>",
"time":"Mar 25th",
"pro_pic":"members/[email protected]/WIN_20150115_140702.JPG",
"userid":"1",
"fname":"Joe",
"lname":"Harris",
"share":"Trick",
"title":"Chicken Hyderabadi Biryani",
"postid":"9",
"postimg":"http://192.168.43.142/aditya/mfoodora/members/[email protected]/chocolate-mint-bar-1231354420.jpg",
"desc":"So , here it goes .. It's a very hybrid biryani especially found in India . Vey famous and tasty but...Read More</a>",
"comm_no":"1",
"comment":"</a>",
"add":"</a>"}
]
}

-6

Решение

Попробуйте сгруппировать ваши OR заявление вместе, поставив его в скобках.

SELECT *
FROM post
WHERE (id BETWEEN '1' AND '500' + 5) AND
(userid = 'testuserid' OR
userid IN (SELECT user FROM frndlist WHERE followers = 'tom') )
1

Другие решения

И имеет более высокий приоритет, чем ИЛИ.

WHERE cond1 AND cond2 OR cond3

интерпретируется как

WHERE ( cond1 AND cond2 ) OR cond3

Как 3 * 5 + 4 интерпретируется как (3 * 5) + 4

Таким образом, пока последнее условие верно, строка будет включена.

0

По вопросам рекламы [email protected]