[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Правильный SQL запрос
Ramzil_Nixon
Есть такая таблица:

user posted image

Как правильно делать запрос, допустим если мне надо выбрать строку (Именно ОДНУ строку) допустим 1000. Если значение для выборки ниже 1000, чтобы мне возвращала строку со значением 1000.

Так будет правильно?

SELECT * FROM `table` WHERE `str` <= 'v'


Или как надо? Че-то затупил помогите :)

_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Эли4ка
'v' то зачем? `str`= 1000 LIMIT 1 и все
arbuzmaster
SELECT * FROM `table` ORDER BY ABS( `value` - 900 ) LIMIT 1
:unsure:

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
sergeiss
Цитата (Ramzil_Nixon @ 27.10.2018 - 15:47)
Как правильно делать запрос, допустим если мне надо выбрать строку (Именно ОДНУ строку) допустим 1000. Если значение для выборки ниже 1000, чтобы мне возвращала строку со значением 1000.

Что значит фраза "если значение для выборки ниже 1000"?

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

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

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

user posted image
Ramzil_Nixon
Цитата (Эли4ка @ 27.10.2018 - 15:10)
v' то зачем? `str`= 1000 LIMIT 1 и все


Цитата (sergeiss @ 27.10.2018 - 19:47)
Что значит фраза "если значение для выборки ниже 1000"?


Допустим v=345 к примеру, и если она меньше 1000 чтобы мне возвращала строку где содержиться 1000.

Решил таким образом:

SELECT * FROM `rating` WHERE `rating` >= '".$v."'


И работает как ни странно, как мне надо.

_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
arbuzmaster
Оно работает не правильно! К примеру: если будет 1005, то выдаст 3000 и последующие значения, а должно выдавать 1000 так как 1005 ближе к 1000, чем к 3000

Вои сравни что выдают

SELECT * FROM `rating` ORDER BY ABS( `rating` - '".$v."' ) LIMIT 1
SELECT * FROM `rating` WHERE `rating` >= '".$v."'

И сам увидишь разницу.

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
Ramzil_Nixon
Цитата (arbuzmaster @ 28.10.2018 - 11:07)
Оно работает не правильно! К примеру: если будет 1005, то выдаст 3000 и последующие значения


Мне так и надо чтобы так работало, как только если значение $v будет больше 1000 чтобы вывод был уже 2 строка, то есть 3000.



_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Быстрый ответ:

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