ФорумРазработкаБазы данных → Баг MySQL или я чего-то не понимаю?

Баг MySQL или я чего-то не понимаю?

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 9:37

    Вот такой дамп


    CREATE TABLE IF NOT EXISTS `testtable` (
    `id` int(11) NOT NULL,
    `test_field` varchar(20) CHARACTER SET cp1251 DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    INSERT INTO `testtable` (`id`, `test_field`) VALUES
    (1, 'text'),
    (2, '0');


    Теперь удали записи так:
    DELETE FROM testtable WHERE test_field = 0


    Результат:
    2 row(s) deleted.


    Почему?
    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 9:46, спустя 9 минут 8 секунд

    Пробовал вешать индекс на test_field
    Пробовал utf8 для test_field
    Также пробовал MyISAM

    Результат не меняется…
    adw/0
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 31 мая 2010 г. 10:01, спустя 14 минут 51 секунду

    у меня удаляется 1 поле если ноль в кавычки заключить
    DELETE FROM `testtable` WHERE `test_field` = '0'
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 10:03, спустя 1 минуту 56 секунд

    Ну это понятно, а при моем варианте?
    adw/0
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 31 мая 2010 г. 10:17, спустя 14 минут 7 секунд

    При твоем 2 строчки. ХЗ почему. Действительно интересно. Может он ноль воспринимает ка булиевое значение?
    Попробовал такой запрос
    DELETE FROM testtable WHERE  test_field =false

    тоже 2 строчки удалил
    Спустя 900000 сек.
    но все равно не вижу логики =)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 10:26, спустя 9 минут 31 секунду

    Я тоже…. :)
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 10:39, спустя 12 минут 17 секунд

    adw0rd, Professor, да вы нюбы ололол, я сто раз говорил всегда берите в кавычки, просто когда ты =0 сделал он привел к типу инт, а любая строка не начинающаяся с чисел при приведении = 0, вот и стер.
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 31 мая 2010 г. 10:42, спустя 3 минуты 14 секунд

    так в strict mode ж наоборот нельзя в кавычки брать?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 10:44, спустя 2 минуты 4 секунды


    adw0rd, Professor, да вы нюбы ололол, я сто раз говорил всегда берите в кавычки, просто когда ты =0 сделал он привел к типу инт, а любая строка не начинающаяся с чисел при приведении = 0, вот и стер.
    как по мне, так это ебанутая логика )
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 14:19, спустя 3 часа 34 минуты 50 секунд

    adw0rd, сделай в пыхе 'test' * 10 :) или 10.'a', тут также)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 14:38, спустя 19 минут 3 секунды

    php тоже гавно
    Спустя 22 сек.
    на питончике все логично, и в емаксе
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 14:38, спустя 11 секунд

    adw0rd, ай да молодца! айда герой!)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 31 мая 2010 г. 14:44, спустя 5 минут 39 секунд

    Да, я такой
    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!