2015-08-25 5 views
0

Я выборки данных с сервера, как это:Два LIKE concate с двумя предельными в SQL

$con = mysqli_connect($servername, $username, $password, $dbname); 
    $sql2 = "SELECT * FROM story WHERE category LIKE CONCAT('%' ,'WorldList', '%') ORDER BY IDStory DESC limit 20"; 
    $result2 = mysqli_query($conn, $sql2); 
    mysqli_query ($con,"set character_set_results='utf8'"); 
    while($finalresult=mysqli_fetch_assoc($result2)){} 

Теперь я хочу, чтобы получить данные из другой категории, как это:

$conn = mysqli_connect($servername, $username, $password, $dbname); 
    $sql2 = "SELECT * FROM story WHERE category LIKE CONCAT('%' ,'WorldList', '%') ORDER BY IDStory DESC limit 20 AND LIKE CONCAT('%' ,'WorldTop', '%') ORDER BY IDStory DESC limit 1,20"; 
    $result2 = mysqli_query($conn, $sql2); 
    mysqli_query ($conn,"set character_set_results='utf8'"); 
    while($finalresult=mysqli_fetch_assoc($result2)){} 

Я знаю, что это неверно, это не запрос, но как я могу сделать это возможным, как this.PS: Я новичок в PHP

+0

Похоже, что вам нужно 2 запросов, объединённых в 'UNION' ->' SELECT * FROM история, где категория LIKE CONCAT ('%' , 'WorldList', '%') ORDER BY IDStory DESC limit 20 UNION ALL SELECT * FROM story WHERE category LIKE CONCAT ('%', 'WorldTop', '%') ORDER BY IDStory DESC limit 1,20' – Sean

+0

lemme me попробуйте Oo –

+0

Просто вставьте этот запрос в sql2? Причина: я не говорю о 'UNION' –

ответ

0

Замените запрос на

$sql2 = "SELECT * FROM story 
     WHERE category LIKE CONCAT('%' ,'WorldList', '%') 
     AND category LIKE CONCAT('%' ,'WorldTop', '%') ORDER BY IDStory DESC limit 20"; 

Вы не можете использовать ORDER BY или AND после LIMIT. В качестве альтернативы можно использовать BOOLEAN MODE

$sql2 = "SELECT * FROM story WHERE MATCH (category) 
    AGAINST ('+WorldList +WorldTop' IN BOOLEAN MODE) ORDER BY IDStory DESC limit 20"; 
+0

Мне нужны два ограничения :(как для ** WordList ** 'Limit 20' и для ** WorldTop **' Limit 1,20' –

1

использование SQL union

SELECT * FROM story WHERE category LIKE CONCAT('%' ,'WorldList', '%') limit 20 
UNION 
SELECT * FROM story WHERE category LIKE CONCAT('%' ,'WorldTop', '%') ORDER BY IDStory DESC limit 20 
+0

Не работает .... –

+0

попробуйте выполнить каждый запрос отдельно в phpmyadmin или mysql-клиенте и проверить результаты. –

+0

Оба работают отдельно ... –

 Смежные вопросы

  • Нет связанных вопросов^_^