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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Возможности функции SELECT COUNT(*)

Сообщения:  [1-7] 

 
 автор: Швейк   (10.03.2005 в 09:25)
 
   для: cheops   (09.03.2005 в 22:45)
 

Ага, то есть COUNT "срабатывает" по основной таблице, в моем случае - users, верно?
А не подскажите ответ не мой вторй вопрос, он дан в моем предыдущем сообщении - тот же SQL-запрос

По этому запросу будет выведен список, в котором параметр sexID будет равен единице.
А мне потребуется, что бы был поиск по критерию sexID=1 ИЛИ sexID=2, т.е. или 1 или 2.
Занимался комбинаторикой типа

WHERE   applicants.sexID='1' 
AND   applicants.sexID='2' 



WHERE   applicants.sexID=(1 OR 2) 


и так далее, но увы....
Может ли MySQL такое в принципе?

С уважением,
Бравый Солдат.

   
 
 автор: cheops   (09.03.2005 в 22:45)   письмо автору
 
   для: Швейк   (09.03.2005 в 16:36)
 

При многотабличном запросе вы не можете использовать *, так как это неоднозначно, но
SELECT 
                   COUNT(users.userID) 
FROM       users,  vacancy, salary 
WHERE   applicants.sexID='1' 
AND          users.vacancyID = vacancy.vacancyID 
AND          users.salaryID = salary.salaryID

вполне допустимо - так можно узнать число строк, которые возвращены СУБД по запросу.

   
 
 автор: Швейк   (09.03.2005 в 19:18)
 
   для: Axxil   (09.03.2005 в 17:51)
 

Ага, ясненько.
Вы абсолютно правы - я о такой функции даже и не не знал.
Можно еще вопрос - тоже по SELECT, но с небольшим отклонением?
есть вот такой код :


SELECT 
                   applicants.userID AS 'UserID', 
                   applicants.name AS 'Name', 
                   applicants.sexID AS 'Sex', 
FROM       users
WHERE   applicants.sexID='1' 


По этому запросу будет выведен список, в котором параметр sexID будет равен единице.
А мне потребуется, что бы был поиск по критерию sexID=1ИЛИ sexID=2, т.е. или 1 или 2.
Простое решение добавить в код строку

OR applicants.sexID='2' 

вызвал непредсказуемый эффект.
Может ли MySQL такое в принципе?

С уважением,
Бравый Солдат.

   
 
 автор: Axxil   (09.03.2005 в 17:51)   письмо автору
 
   для: Швейк   (09.03.2005 в 17:38)
 

у меня идёт обращение к полям таблиц через идентификаторы.
Каждой таблице присваивается свой t1,t2,t3... и потом вместо того чтобы каждый раз указывать имя таблицы user.id можно просто обратиться как t1.id. Так получается намного нагдянее да и код меньше

   
 
 автор: Швейк   (09.03.2005 в 17:38)
 
   для: Axxil   (09.03.2005 в 16:57)
 

Извините, не совсем уловил разницу между моим и Вашим SQL-запросами.
А за mysql_num_rows - огромное спасибо!

С уважением,
Бравый Солдат.

   
 
 автор: Axxil   (09.03.2005 в 16:57)   письмо автору
 
   для: Швейк   (09.03.2005 в 16:36)
 

За это отвечает php функция mysql_num_rows например

<?
$sql
="SELECT * FROM table";
$query=mysql_query($sql);
$num=mysql_num_rows($query);
?>

эта функция считает кол-во записей в результате запроса
кстати по-моему намного удобнее использовать такой синтаксис запроса:

SELECT 
                   t1.userID AS 'UserID', 
                   t1.name AS 'Name', 
                   t1.sexID AS 'Sex', 
                   t2.description AS 'Vacancy', 
                   t3.description AS 'Salary', 
FROM       users t1,  vacancy t2, salary t3 
WHERE   applicants.sexID='1' 
AND          t1.vacancyID = t2.vacancyID 
AND          t1.salaryID = t3.salaryID 

   
 
 автор: Швейк   (09.03.2005 в 16:36)
 
 

Данная функция по сути дела является счетчиком записей в таблице.
Вопрос:
А можно ли посчитать количесвто записей в SQL-запросе?

Поясню ситуацию:
Используя код

SELECT COUNT (*) FROM users

можно узнать количество записей в таблице users

А если SQL-запрос вот такой:
[

 SELECT
                   users.userID AS 'UserID',
                   users.name AS 'Name',
                   users.sexID AS 'Sex',
                   vacancy.description AS 'Vacancy',
                   salary.description AS 'Salary',
 FROM       users,  vacancy, salary
 WHERE   applicants.sexID='1' 
 AND          users.vacancyID = vacancy.vacancyID
 AND          users.salaryID = salary.salaryID
 

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

Заранее благодарю.
С уважением,
Бравый Солдат.

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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