Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 3992
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 1761
∙ повысить рейтинг »
Чичерин Вадим Викторович
Статус: Профессионал
Рейтинг: 356
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Базы данных / MySQL

Номер выпуска:492
Дата выхода:14.11.2013, 13:30
Администратор рассылки:Абаянцев Юрий Леонидович aka Ayl (Профессионал)
Подписчиков / экспертов:71 / 34
Вопросов / ответов:3 / 7

Консультация # 71132: Здравствуйте! Подскажите пожалуйста, что в настройках сервера mysql мне нужно исправить? поле создано: `description` VARCHAR(255) NOT NULL, когда вставляю, возвращает ошибку: Data too long for column \'description\' at row 1 ..


Консультация # 137473: Здравствуйте уважаемые эксперты! Не могли бы Вы помочь составить запрос. таблица (sort, kart, nn - ключевые): sort , kart, nn, data, kolvo Примерные данные: 1 100 1 20.05.08 10 1 100 2 23.05.08 5 2 101 1 15.05.08 3 2 101 4 18.05.08 7 3 110 3 29.05.08 12 для пользователя надо представить в следующем вид...
Консультация # 156432: Уважаемые эксперты, помогите решить следующую задачу: Есть 2 таблицы, names(id,name) и values(id,pid,user_id,value). В names хранятся названия параметров, в values их значения. Мне нужно одним запросом получить название параметра и его значение, у меня получился следующий запрос:
Код :
...

Консультация # 71132:

Здравствуйте!

Подскажите пожалуйста, что в настройках сервера mysql мне нужно исправить?

поле создано:
`description` VARCHAR(255) NOT NULL,

когда вставляю, возвращает ошибку:
Data too long for column \'description\' at row 1

Дата отправки: 16.01.2007, 03:50
Вопрос задал: Талипов А Н
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Heartwork:

Здравствуйте, Талипов А Н!
Извиняюсь за банальность, но попробуйте проверить всё-таки то обстоятельство, которое указано в исключении. Вдруг у вас на самом деле текст, который вы пытаетесь вставить в поле \'description\', занимает больше 255 символов для одной строки?

Консультировал: Heartwork
Дата отправки: 16.01.2007, 09:13
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Архангельский Андрей Германови:

Здравствуйте, Талипов А Н!

Он пишет "Слишком длинные данные для поля"
Как только появляется not null, то подразумевается индекс. Нужно посмотреть какой допустимый размер индекса для MySQL, в Firebird 1.5 это 176 символов.

Консультировал: Архангельский Андрей Германови
Дата отправки: 16.01.2007, 09:45
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Устинов С.Е. (Профессионал):

Здравствуйте, Талипов А Н!

Я думаю, проблема во вводе только кириллических символов, т.е. когда Вы вводите английский текст - все нормально. Если это не так - укажите в минифоруме.

Осмелюсь предположить такой вариант решения (т.к. не знаю, каким методом Вы соединяетесь с сервером):

Для этого поля посмотрите, чтобы "сравнение" было cp1251_general_ci.

При подключении к MySQL (опять же осмелюсь предположить, что Вы соединяетесь с MySQL из PHP) выполняете такие команды:

$link = @mysql_connect($DB_host, $DB_login, $DB_password)
or die ("Нет соединения с базой данных!");
mysql_query("SET character_set_client = cp1251",$link);
mysql_query("SET character_set_connection = cp1251",$link);
mysql_query("SET character_set_results = cp1251",$link);
mysql_select_db($DB_name, $link)
or die ("Невозможно выбрать базу данных");

Хотя если Вы соединяетесь с БД не из PHP, то все-равно можно выполнить те же запросы.

Удачи!

Консультировал: Устинов С.Е. (Профессионал)
Дата отправки: 16.01.2007, 13:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 137473:

Здравствуйте уважаемые эксперты!
Не могли бы Вы помочь составить запрос.
таблица (sort, kart, nn - ключевые): sort , kart, nn, data, kolvo
Примерные данные:
1 100 1 20.05.08 10
1 100 2 23.05.08 5
2 101 1 15.05.08 3
2 101 4 18.05.08 7
3 110 3 29.05.08 12

для пользователя надо представить в следующем виде:
| 1 | - | 2 | - | 3 | - | 4 | - |
-----------------------------------------------------------------------------------
100 | 20.05 | 10 | 23.05 | 5 | | | | |
101 | 15.05 | 3 | | | | | 18.05 | 12 |
110 | | | | |29.05 | 12 | | |

очень хотелось бы чтобы это был один запрос, без всяких дополнительных копирований в промежуточные табл. и доп.обработки
(в крайнем случае в таблицу можно добавить пустых значений)

или подскажите какие-либо варианты решения

Дата отправки: 19.05.2008, 11:26
Вопрос задал: Nataliazhurauleva
Всего ответов: 2
Страница онлайн-консультации »


Консультирует BlackRaider:

Здравствуйте, Nataliazhurauleva!
Вообщем то не самые красивые варианты решения...
да и не написали какая БД используется. писал и пробовал все на MSSQL

Приложение:

Консультировал: BlackRaider
Дата отправки: 19.05.2008, 12:17
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Nomadfromx2007:

Здравствуйте, Nataliazhurauleva!
Написал запрос на oracle, но я не занимался его оптимизацией. Это отдельный вопрос.

Приложение:

Консультировал: Nomadfromx2007
Дата отправки: 20.05.2008, 03:20
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 156432:

Уважаемые эксперты, помогите решить следующую задачу:
Есть 2 таблицы, names(id,name) и values(id,pid,user_id,value).
В names хранятся названия параметров, в values их значения. Мне нужно одним запросом получить название параметра и его значение, у меня получился следующий запрос:

Код :
SELECT nm.*,vl.value FROM `names` nm,`values` vl WHERE vl.pid=nm.id AND vl.user_id={вставляется ID} LIMIT
1


Данный запрос прекрасно работает, но только при условии, что в values существует подходящая запись, если таковой нет то ничего не возвращает, а мне нужно, чтобы если нет удовлетворяющих записей возвращалось пустое значение value.

Дата отправки: 02.01.2009, 04:21
Вопрос задал: Миленин Александр
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Виктор Пырлик:

Здравствуйте, Миленин Александр!

Вы не указали СУБД, но по синтаксису могу предположить что это MySQL.

Во первых – не используйте служебные слова в личных целях (именование объектов, как то – «values” “value” “names” и т.д.) – это не просто дурной тон, что и чисто практически связано с множеством проблем и ошибок.

Во вторых – Ваше требование не логично.
«показать все записи родительской таблицы удовлетворяющие условию для подчиненной таблицы». И при этом, если нет записей в дочерней таблице – показать в родительской.. простите что?? Показать всё???

Ну и вот примеры запросов:
Возвращает только записи пересечения

Код :
SELECT 
  names.id,
  names.name,
  `values`.value
FROM `values` 
   JOIN names ON (`values`.pid = names.id and `values`.user_id = 1)


Правое объединение

Код :
SELECT 
  names.id,
  names.name,
  `values`.value
FROM `values` 
  RIGHT OUTER JOIN names ON (`values`.pid = names.id and `values`.user_id = 1)


Аналогичные с WHERE

Код :
SELECT 
  names.id,
  names.name,
  `values`.value
FROM `values` 
JOIN names ON (`values`.pid = names.id )
Where `values`.user_id = 1


Консультировал: Виктор Пырлик
Дата отправки: 02.01.2009, 10:22
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Цепковский Антон Сергеевич:

Здравствуйте, Миленин Александр!

Если используется MySQL, то используйте внутреннюю условную функцию IF:

IF(x,y,z) — если x = true (вернее, если x не равен 0 и не NULL), выдаёт y, если нет — z.

К примеру, в форуме хранится информация о пользователях и есть возможность не показывать другим пользователям свой Email. Делается поле show_email, в котором лежит 0, если пользователь не хочет показывать адрес, и 1, если разрешает.

SELECT ..., IF (show_email,CONCAT('<a href=mailto:',email,'>написать письмо</a>'),'адрес не указан') AS email, ...

С уважением,
Антон Цепковский

Консультировал: Цепковский Антон Сергеевич
Дата отправки: 05.01.2009, 17:31
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное