Ответы пользователя по тегу SQL
  • Двойной запрос MySql?

    Astrohas
    @Astrohas
    Python/Django Developer
    лучше сделайте несколько и заверните в транзакцию
    Ответ написан
    3 комментария
  • Каким СУБД можно открыть файл с расширением mv.db?

    Astrohas
    @Astrohas
    Python/Django Developer
    попробуйте через Db browser for SQLite
    Ответ написан
    Комментировать
  • Где может быть ошибка в SQL-запросе?

    Astrohas
    @Astrohas
    Python/Django Developer
    ошибка по моему тут
    WHERE id IN('{$num_contact}')
    Замените на
    WHERE id IN({$num_contact})
    Ответ написан
    2 комментария
  • Какие видео-уроки по SQL лучше?

    Astrohas
    @Astrohas
    Python/Django Developer
    SQL от Технопарка очень грамотно сделан. особенно версия 2013 года
    Ответ написан
    Комментировать
  • Почему не работает sql запрос?

    Astrohas
    @Astrohas
    Python/Django Developer
    SELECT * FROM users_data WHERE owner='1' LIMIT 54720, 10

    вы хотите возвратить 54730 элементов от начала, а нужно 10
    Ответ написан
    Комментировать
  • Как сделать такой запрос в базу данных MYSQL?

    Astrohas
    @Astrohas
    Python/Django Developer
    LIMIT же
    SELECT * FROM tbl LIMIT start, count;
    Ответ написан
    1 комментарий
  • Селекты из таблицы на 5 млн строк. Если разбить её на 100 таблиц - будет выигрыш в производительности?

    Astrohas
    @Astrohas
    Python/Django Developer
    Но на сервере всего 4Гб памяти.

    Тоже работал с АНАЛогичным сервером,и базой в 90гб!
    Как вы будете иметь доступ к таблицам категорий? Обычно франкейнштейномеркеры делают вспомогательную таблицу типа "category - category_tabe_name". Но учтите что для изъятия любого товара из базы, придется делать минимум два запроса.
    Также нужно учесть фильтры по нескольким категориям, и для например 2 категорий будут два запроса для запрашивания таблиц, и два для запрашивания информации из таблиц + еще один для результатирования.
    Гораздо проще докупить памяти, поднастроит кешировоание, добавить дополнительные индексы и всякую всячину.
    ----
    и если вы все еще хотите делить по таблицам советую использовать стандартные инструмены мускула вроде "partitioning" который особенно полезен, и на хабре есть мануальчик по этому https://habrahabr.ru/post/66151/
    Ответ написан
  • Правильное написание sql запроса?

    Astrohas
    @Astrohas
    Python/Django Developer
    Откуда берётся ошибка

    Эта ошибка возникает, если запрос не может быть выполнен. Функции, которые могут к ней привести:

    mysql_fetch_array/mysqli_fetch_array()
    mysql_fetch_assoc()/mysqli_fetch_assoc()
    mysql_num_rows()/mysqli_num_rows()
    Если с запросом всё в порядке, и просто результат его выполнения пустой, то ошибка не возникает. К ошибке приводит только неверный синтаксис SQL.

    Как найти источник ошибки

    Убедитесь, что на сервере, на котором вы ведёте разработку, включено отображение всех ошибок. Вы можете включить его из PHP, выполнив error_reporting(-1); (можно разместить этот код в конфигурационном файле вашего сайта, например). Если при попытке выполнения запроса будут обнаружены ошибки в синтаксисе, то они будут отображены.
    Используйте mysql_error(). Эта функция вернёт строку с текстом ошибки, если таковая возникла при выполнении последнего запроса.

    Например:
    mysql_connect($host, $username, $password) or die("Ошибка подключения");
    mysql_select_db($db_name) or die("Ошибка выбора БД");

    $sql = "SELECT * FROM table_name";
    $result = mysql_query($sql);

    if ($result === false) {
    echo mysql_error();
    }
    Выполните ваш запрос в командной строке MySQL или из инструмента вроде phpMyAdmin. Если в запросе есть синтаксическая ошибка, то она будет отображена.
    Убедитесь, что в запросе верно расставлены кавычки. Это частая причина синтаксических ошибок.
    Убедитесь, что вы экранируете ваши значения. Если в строке присутствует кавычка, это может привести к ошибке (а также сделать ваш код уязвимым к SQL-инъекциям). Используйте для этого mysql_real_escape_string().
    Убедитесь, что вы не используете одновременно функции mysqli_* и mysql_*. Их использование нельзя смешивать. (Если вы не знаете, что выбрать, отдайте предпочтение mysqli_*.)
    Советы

    Не используйте функции mysql_* в новом коде. Разработчики PHP больше не поддерживают и не развивают их, они отмечены как устаревшие, и в будущих версиях будут удалены. Ознакомьтесь с понятием prepared statement и переходите на использование PDO (PHP Data Objects) или MySQLi (MySQL improved). Это избавит вас от проблем с экранированием значений и убережёт от SQL-инъекций.

    И MySQLi, и PDO поддерживают режим, в котором при ошибках выбрасываются исключения. В новом коде следует использовать этот подход, потому что он помогает обрабатывать ошибки в одном месте, а не размазывать проверки по всему коду, и позволяет обработке ошибок не зависеть от внешних условий (от конфигурации).

    Если вкратце, то PDO — это общий слой над базами данных, который позволяет относительно легко переключать СУБД; а MySQLi даёт доступ к некоторым дополнительным возможностям СУБД MySQL..
    Источник
    Ответ написан
  • Как хранить в базе записи (итемы) разных пользователей?

    Astrohas
    @Astrohas
    Python/Django Developer
    Таблица User будет хранить пользователей, Notes будет хранить записки и внешним ключом связываться с users.
    Ответ написан
    8 комментариев