Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
32 / 31 / 21
Регистрация: 13.07.2014
Сообщений: 374

Изменить все значения столбца одним запросом

03.09.2016, 10:39. Показов 2350. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли как нибудь изменить значения в бд используя только 1 запрос

MySQL
1
2
3
UPDATE society SET like = 
SELECT like++ FROM society WHERE id = '{$_GET['id']}' /* ~like++~ - ну ты загнул */
WHERE user = '{$_GET['id']}'

и можно ли вообще изменять данные подзапросом,
в книге 2005 года написано что для MySQL(4,1) нельзя, может в новых версиях можно?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.09.2016, 10:39
Ответы с готовыми решениями:

Как при помощи php и sql добавить запросом значения одного столбца?
как при помощи php и sql добавить запросом значения именного одного столбца?

Как одним запросом достать все значение всех полей из comments и соответствующее значение из users
В таблице comments есть поля id, author_id, post_id, text, date Я выбираю все данные из этой таблицы, но мне еще нужно достать аватарку...

Выборка одним запросом
Не могу сообразить как сделать выборку такого рода одним запросом. Есть две таблицы: chases_1 и chases_2. Поля у них разные, но одно...

12
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
03.09.2016, 10:46
Лучший ответ Сообщение было отмечено WeMeSder как решение

Решение

Разумеется можно. Так, примерно:
SQL
1
2
UPDATE `society` SET `like`=(SELECT `like` FROM `society` WHERE `id`=:id) + 1
WHERE `user`=:id
1
32 / 31 / 21
Регистрация: 13.07.2014
Сообщений: 374
03.09.2016, 11:32  [ТС]
что- то ни как не выходит, никаких изменений не происходит
на денвере версия 5.5.25
PHP
1
2
3
    $BD -> query("UPDATE society SET like =
        '(SELECT like FROM society WHERE id = '{$_REQUEST['id']}') + 1'
    WHERE id = '{$_REQUEST['id']}'");
может это из-за PDO?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
03.09.2016, 11:41
WeMeSder, сравните запросы. У Вас совершенно неправильный. Не знаю, что сподвигло Вас именно так написать...

Добавлено через 1 минуту
PHP
1
$BD -> query("UPDATE `society` SET `like`=(SELECT `like` FROM `society` WHERE `id`= '{$_REQUEST['id']}') + 1 WHERE `id`='{$_REQUEST['id']}'");
Добавлено через 1 минуту
На самом деле использовать $_REQUEST['id'] напрямую в запросе небезопасно.
1
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
03.09.2016, 11:41
like в кавычки возьмите.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
03.09.2016, 11:41
На самом деле использовать $_REQUEST['id'] напрямую в запросе небезопасно.
2
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
03.09.2016, 11:48
Лучший ответ Сообщение было отмечено WeMeSder как решение

Решение

Вложенный запрос в кавычки брать не надо.

Добавлено через 1 минуту
Почему в послед. условии user превратилось в id?

Добавлено через 2 минуты
Я вообще не понял, почему в данном случае нельзя сделать просто `like`=`like`+1
1
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
03.09.2016, 11:52
Цитата Сообщение от miketomlin Посмотреть сообщение
Я вообще не понял, почему в данном случае нельзя сделать просто `like`=`like`+1
Точно. Я -- осёл. Там же одна таблица.
0
32 / 31 / 21
Регистрация: 13.07.2014
Сообщений: 374
03.09.2016, 13:29  [ТС]
Цитата Сообщение от miketomlin Посмотреть сообщение
`like`=`like`+1
работает, я и не думал что так можно
_____________________________________

Добавлено через 1 час 29 минут
Цитата Сообщение от Para bellum Посмотреть сообщение
$_REQUEST['id'] напрямую в запросе небезопасно.
как называется такое представление:
Цитата Сообщение от Para bellum Посмотреть сообщение
`user`=:id
~как найти
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
03.09.2016, 13:32
WeMeSder, это называется подготавливаемые запросы (prepared statements).
http://php.net/manual/ru/pdo.p... ements.php
1
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
03.09.2016, 13:43
WeMeSder, можно id профильтровать заранее, перед тем как пихать его в запрос. Заодно я бы прежде проверил существование данного пользователя/сообщения перед тем как ставить ему лайк.
0
32 / 31 / 21
Регистрация: 13.07.2014
Сообщений: 374
03.09.2016, 13:57  [ТС]
Цитата Сообщение от miketomlin Посмотреть сообщение
можно id профильтровать заранее
что вы имеете ввиду, как профильтровать?
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
03.09.2016, 14:08
Хотя бы проверить, что id – это корректно записанное целое в опред. диапазоне.

Добавлено через 2 минуты
Вот к примеру маска: [1-9]\d{0,9} – натуральное десятичное, состоящее не более чем из 10 цифр.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.09.2016, 14:08
Помогаю со студенческими работами здесь

вывод 2х столбцов БД одним запросом
Всем привет! Начал изучать php, добрался до SQL. СтоИт такая задача: В таблице img хранятся данные о картинках из двух папок...

Можно ли обойтись одним запросом
Добрый вечер, помогите дописать sql , и можно ли уложится одним как-то запросом ... SELECT m . * , wd.WORKDATE AS WD_DATE,...

Несколько данных одним запросом
Добрый день Имеется таблица пользователей. Мне надо вывести из нее информацию: 1. Сколько всего пользователей. SELECT COUNT(*) FROM...

Изменение нескольких строк одним запросом
Допустим, есть таблица: 1 Благоустройство и озеленение 1 blagoustroystvo-i-ozelenenie 500 1 2 Благоустройство и озеленение 0...

Подсчет записей в рубриках одним запросом
Народ! Подскажите пожалуйста как правильно сделать подсчет записей в рубриках, вот пример одного сайта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru