[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Либо лыжи не едут
Страницы: 1, 2
dr.nomore
Все работало пока в порядке эксперимента решил попробовать не имеющие особого смысла сравнения, и немедленно получил отлуп:

Цитата
real_query error #1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '> "стол" limit 0' at line 1
select SQL_CALC_FOUND_ROWS * from `catalog_sub` where `catalog_sub`.`name` <> "стол" limit 0;


Чтобы было виднее, вот запрос из цитаты, в котором якобы синтакс еррор

select SQL_CALC_FOUND_ROWS * from `catalog_sub` where `catalog_sub`.`name` <> "стол" limit 0;


Запускаю РМА. То же самое. При чем ругается уже на его автоматически влезающий ORDER BY, by почему по по полю которое ни разу не pk.

Ладно, пробился в консоль (что требует усилий, поскольку забываю как это делается). Консоль спокойно все обрабатывает, с любыми сравнениями:


mysql> select SQL_CALC_FOUND_ROWS * from `catalog_sub` where `catalog_sub`.`name` > "стол" limit 0;
Empty set (0.00 sec)

mysql> select SQL_CALC_FOUND_ROWS * from `catalog_sub` where `catalog_sub`.`name` > "стол" limit 0;
Empty set (0.00 sec)

mysql> select SQL_CALC_FOUND_ROWS * from `catalog_sub` where `catalog_sub`.`name` <> "стол" limit 0;
Empty set (0.00 sec)

mysql> select SQL_CALC_FOUND_ROWS * from `catalog_sub` where `catalog_sub`.`name` <> "стол" limit 10;
+------+----------------------------------------------+----------------------------+-------+-------- +------+
| iden | name | size | price | parent | sort |
+------+----------------------------------------------+----------------------------+-------+-------- +------+
// поскипано
+------+----------------------------------------------+----------------------------+-------+-------- +------+
10 rows in set (0.00 sec)

mysql>


Что это может значить?

UPD: это значит я тупой. См. ниже
dr.nomore
Про Денвер. У меня денвер. Я ставил другие сюиты - эквмпенисуальное г , даже еше похуже. Разобраться с апачами все недосуг. Но может быть пришла пора? Это ж явно оптимизатор глючит, или на самом деле у меня синтакс еррор?
sergeiss
"стол" в одинарные кавычки не пробовал ставить?

И второй вопрос - а какой смысл от "limit 0"???

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
dr.nomore
Попробовал. Те же яйца, вид тот же.

dr.nomore
Ладно, чем отличается то что было

select SQL_CALC_FOUND_ROWS * from `catalog_sub` where `catalog_sub`.`name` <> "стол" limit 0;


от этого?

select SQL_CALC_FOUND_ROWS * from `Продукт` where `Продукт`.`Название` <> "ANDE" limit 0;


второе РМА обрабатывает, а майскля - нет. В консоли все как обычно.
dr.nomore
На второй вопрос. Ну там же ответ в начале запроса.
T1grOK
SQL_CALC_FOUND_ROWS dry.gif
Не ленитесь делать дополнительный запрос на подсчет количества строк, в большинстве случаев это эффективнее.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
dr.nomore
Упс, это я ....тый. Лыжи тут не при чем. РМА, конечно, вообще глюк голимый. Короче догадался я заглянуть в коды:

select SQL_CALC_FOUND_ROWS * from `catalog_sub` where `catalog_sub`.`iden` & gt; 9 limit 0, 0;


Вот так. На входе запроса (get) же типично стоит санация, она по-быстрому все эти уголовые скобки и сконвертила При этом они так и остаются уголовыми при выводе в браузер, в смысле с витрины.

PS В цитате пробел между амперсандом и мнемоникой, потому что и скрипт форума конвертит в скобку.
vagrand
T1grOK
Цитата
Не ленитесь делать дополнительный запрос на подсчет количества строк, в большинстве случаев это эффективнее.


Это с какой такой радости?

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
dr.nomore
Цитата (T1grOK @ 15.12.2013 - 16:15)
SQL_CALC_FOUND_ROWS dry.gif
Не ленитесь делать дополнительный запрос на подсчет количества строк, в большинстве случаев это эффективнее.

Щито?

Это оно и ест - подсчет количества строк. Просто мне не нужны данные на этом этапе, потому что еще предстоит узнать сколько этих данных потребуется. Откуда и limit 0.

dr.nomore
На самом деле без требований получить данные запросы проходят мгновенно. Я не замерял, но по ощущениям вместо одного обычного можно запузырить штук пять пустых за то же время.
dr.nomore
Да, и в рамках mysqli для этого юзать надо real_query().
glock18
Цитата (vagrand @ 15.12.2013 - 12:59)
T1grOK
Цитата
Не ленитесь делать дополнительный запрос на подсчет количества строк, в большинстве случаев это эффективнее.


Это с какой такой радости?

Встречный вопрос: а что mysql исправил свое дико багнутое поведение SQL_CALC_FOUND_ROWS? Если нет, то почти всегда использование SQL_CALC_FOUND_ROWS не лучше, чем дополнительный запрос с count'ом. Если исправили, то линк, пожалуйста, на changelog или что-то указывающее на это.
glock18
Цитата (dr.nomore @ 15.12.2013 - 13:07)
На самом деле без требований получить данные запросы проходят мгновенно. Я не замерял, но по ощущениям вместо одного обычного можно запузырить штук пять пустых за то же время.

На таблицах каких размеров пробовали?
T1grOK
Цитата (vagrand @ 15.12.2013 - 12:59)
T1grOK
Цитата
Не ленитесь делать дополнительный запрос на подсчет количества строк, в большинстве случаев это эффективнее.

Это с какой такой радости?

Книги умные надо читать. Все мои утверждения подкреплены личным опытом, статьями или книгами. В данном случае книгами.

P.S. Собственно glock18 уже намекнул, что с SQL_CALC_FOUND_ROWS не все так гладко в Mysql.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.