[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неверный SELECT из-за короткого поля
GET
Привет, как средствами MYSQL можно побороть.

Есть поле varchar(3) - уникальное.

1. В него добавили слово "1234" при этом "4" обрезалось.
2. Нужно проверить есть ли в таблице слово "1234" делам SELECT (вытащить id) говорит, что нет (так-как там "123" осталось)
3. Тогда делаем "1234" INSERT, чтоб вытащить insert_id, но будет ошибка поле уже есть (INSERT IGNORE не походит - нужен id)

Можно ли решить проблему:
1. Без mysql регулярок в запросе - т.к. длина varchar может быть не известна
2. Без предварительной проверки/обрезки php
3. Без увеличения длины поля

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sergeiss
GET, первое, что приходит в голову, "надо знать структуру БД". Тогда таких проблем не будет.

И я не понял, как ты вставил '1234'? Пробую - не вставляется, говорит
Цитата
Data too long for column 'name' at row 2

Структура таблицы:
CREATE TABLE  `tab5` (
`id` int(11) DEFAULT NULL,
`name` varchar(3) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


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

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

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

user posted image
Valick
Цитата (GET @ 22.02.2015 - 13:12)
В него добавили слово "1234" при этом "4" обрезалось.

ну если обрезалось, значит уже не добавилось

Очень интересно с какого перепугу вообще возникла подобная задача?
Вообще-то перед тем как "сувать шо попало" в БД, данные должны проходить валидацию, которая собственно включает в себя контроль размерности.

_____________
Стимулятор ~yoomoney - 41001303250491
GET
sergeiss
Valick

Спасибо. Разобрался вроде, так до конца и не понял почему так изначально получилось - два разных человека писали один скрипт. Друг за другом затерали валидацию.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

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