Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Иногда существующий столбец...
 
 автор: dimon.st   (11.03.2006 в 18:20)   письмо автору
 
 

Здравствуйте, подскажите как можно извлечить из базы один столбец (получить значения всех строчек) или другой при отсуствии первого, зная имена столбцов...
т.е. мы знаем что в базе данных существует либо поле 'name' либо 'title' надо получить значения существующего... Сделать это нужно скъюл запросом, т.е. способ извлечения поля и проверки была ли ошибка не годится (или получения описания таблицы)..

Зарание спасибо..

   
 
 автор: cheops   (11.03.2006 в 20:27)   письмо автору
 
   для: dimon.st   (11.03.2006 в 18:20)
 

Удобнее это сделать в PHP, т.е. извлечь все записи
SELECT * FROM tbl

обработать их при помощи функции mysql_fetch_array(), а далее смотреть, если существует столбец name - использовать его, если нет - title
<?php
  
if(isset($result['name']))
  {
    
// В таблице имеется поле name
  
}
  else
  {
    
// В противном случае используем поле title
  
}
?>

   
 
 автор: Dimon.st   (11.03.2006 в 22:12)   письмо автору
 
   для: cheops   (11.03.2006 в 20:27)
 

Да можно, то можно... Только разумно ли извлекать все поля, особенно если больше половины не нужно.. и если прикинуть, что записи в бд не 255 значные .. может легче получить действительно все поля а там посмотреть нужные есть или нет... Как считаете? То есть в 2 запроса, раз в один каким-то хитрым синтаксисом нельзя(Кстати а можно проверить через sql функцию существование столбца при SELECT?).

Вот еще вопрос, а как можно с групировать в один запрос:
запрос на выяснения колличества строчек в таблице
запрос на получения перечьня столбцов

   
 
 автор: cheops   (12.03.2006 в 13:00)   письмо автору
 
   для: Dimon.st   (11.03.2006 в 22:12)
 

1) Можно, действительно проверить существование столбца дополнительным запросом, но обычно каждый запрос к базе данных затратен по времени выполнения, а в случае предложенного двумя постами выше варианта - затраты идут только на память, которой под каждый скрипт отводится 8-16 Мб (для работы с базой данных обычно достаточно).

2) Нет в один запрос вряд ли получится - здесь два придётся выполнять...

   
 
 автор: Dimon.st   (12.03.2006 в 13:16)   письмо автору
 
   для: cheops   (12.03.2006 в 13:00)
 

Согласен, спасибо.

   
 
 автор: Trianon   (12.03.2006 в 22:39)   письмо автору
 
   для: Dimon.st   (12.03.2006 в 13:16)
 

В качестве первого из запросов можно применить
DESCRIBE tbl
или
SHOW COLUMNS FROM tbl
Обычно это не такой уж ёмкий запрос (по сравнению с выборкой целого столбца).

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования