Частичная замена значений в поле по условию - SQL

Небольшие заметки о html, css, sql, php

Модератор: Valery

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20017
На борту с: 07.02.2005
Награды: 5
Репутация: 541
Из: Тридевятое царство

Вопрос Частичная замена значений в поле по условию - SQL

#1

Сообщение Valery » 10.04.2014 02:07

Есть таблица smf_members, в текстовом поле additional_groups хранятся данные так: 1,5,12,16,19
Есть поле date  - при выполнении условия date<Now() удалить из поля данные ,16

Так работает:

Код: Выделить всё

UPDATE `smf_members` set `additional_groups` = REPLACE(`additional_groups`, ",16", "");
Условие добавляю - ошибка.
Что-то типа такого наверное должно быть:

Код: Выделить всё

UPDATE `smf_members` set `additional_groups`, smf_members.end_date
FROM smf_members WHERE ((smf_members.end_date<Now()))
= REPLACE(`additional_groups`, ",16", "");
Последний раз редактировалось Valery 10.04.2014 04:02, всего редактировалось 1 раз.
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Аватара пользователя
Спонсор раздела
Бизнес
Сообщения: 2017
На бору: 03.10.2005
Контакты:

Re: Важное сообщение

Сообщение Спонсор раздела » Пт дек 09, 2011 6:53 am

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20017
На борту с: 07.02.2005
Награды: 5
Репутация: 541
Из: Тридевятое царство

Re: Частичная замена значений в поле по условию - SQL

#2

Сообщение Valery » 11.04.2014 06:40

Допер. Вот такой запрос:

Код: Выделить всё

UPDATE `smf_members` set `additional_groups` = REPLACE(`additional_groups`, ",16", "")
WHERE (((Smf_members.end_date)<Now()));
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Аватара пользователя
Akwa

DVD-video Водномоторный выпуск Великовод форума
Водномоторник
Водномоторник
Сообщения: 793
На борту с: 29.10.2008
Награды: 2
Репутация: 49

Re: Частичная замена значений в поле по условию - SQL

#3

Сообщение Akwa » 14.04.2014 02:54

точно! только чем тебе 16 не угодило... ???

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20017
На борту с: 07.02.2005
Награды: 5
Репутация: 541
Из: Тридевятое царство

Re: Частичная замена значений в поле по условию - SQL

#4

Сообщение Valery » 14.04.2014 03:57

Так, есть мысля одна - ищу возможность реализации ->|
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Аватара пользователя
shkiper
ВодкоМоторник
ВодкоМоторник
Сообщения: 6088
На борту с: 06.06.2011
Репутация: 206

Re: Частичная замена значений в поле по условию - SQL

#5

Сообщение shkiper » 14.04.2014 04:09

Валер, а вы в этой ветке, что обсуждаете? Новые флаги расцвечивания Сиера, Квебек, Лима?
DF60A Москва 77, Алексей.

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20017
На борту с: 07.02.2005
Награды: 5
Репутация: 541
Из: Тридевятое царство

Re: Частичная замена значений в поле по условию - SQL

#6

Сообщение Valery » 14.04.2014 04:34

У меня с формулированием не только задачи но и ответа проблемы - тк. не мой профиль, Akwa лучше ответит.
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Аватара пользователя
Akwa

DVD-video Водномоторный выпуск Великовод форума
Водномоторник
Водномоторник
Сообщения: 793
На борту с: 29.10.2008
Награды: 2
Репутация: 49

Re: Частичная замена значений в поле по условию - SQL

#7

Сообщение Akwa » 14.04.2014 04:51

подозреваю, что в зависимости от текущей даты надо как-то список групп пользователей ограничить.
что за группа хранится под номером 16 мне не ведомо. Зачем это нужно пока тоже не понятно.
надо все-же мысль до конца додумать...
в личку пиши, если что

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20017
На борту с: 07.02.2005
Награды: 5
Репутация: 541
Из: Тридевятое царство

Re: Частичная замена значений в поле по условию - SQL

#8

Сообщение Valery » 30.06.2014 09:04

Как в запросе правильно указать поле jos_zoo_item.created_by_alias, т.е. чтобы обновлялось данными из этого поля:

Код: Выделить всё

UPDATE jos_zoo_item SET `elements` 
= REPLACE (`elements`, 
.jpg",, 
		jos_zoo_item.created_by_alias & .jpg",
		"title": "jos_zoo_item.name",
		"link": "jos_zoo_item.created_by_alias",
);


У меня после обновления получается:
jos_zoo_item.created_by_alias.jpg
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Аватара пользователя
Akwa

DVD-video Водномоторный выпуск Великовод форума
Водномоторник
Водномоторник
Сообщения: 793
На борту с: 29.10.2008
Награды: 2
Репутация: 49

Re: Частичная замена значений в поле по условию - SQL

#9

Сообщение Akwa » 01.07.2014 06:16

не уловил суть вопроса. а что должно получиться?
Судя по коду могу предположить, что обновить ты хочешь поля elements, title, link... нет?
лучше приведи исходную таблицу, таблицу из которой обновление идет, и что получить желаешь...
кроме того в запросе вообще нет условий отбора. так он тебе вообще все записи обновит в таблице jos_zoo_item

не нравится мне этот запрос... но еще вот вариант
UPDATE jos_zoo_item SET `elements`
= REPLACE (`elements`,
.jpg",,
jos_zoo_item.created_by_alias & .jpg",
"title": "jos_zoo_item.name",
"link": "jos_zoo_item.created_by_alias",
);

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20017
На борту с: 07.02.2005
Награды: 5
Репутация: 541
Из: Тридевятое царство

Re: Частичная замена значений в поле по условию - SQL

#10

Сообщение Valery » 01.07.2014 08:33

Что-то простые вопросы ты как-то туго соображаешь ...:(

Есть таблица jos_zoo_item, в ней поля created_by_alias и elements. Тип поля elements - LongTexts, т.е. там дофигища прописано...

Код: Выделить всё

 {
	"2cf8bfc0-b3b9-4584-92d9-a73eac77e1e0":  {
		"votes": 0,
		"value": 0
	},
	"49ce7b22-ad1b-48a4-b40c-3fd91e693f05":  {
		"item":  {
			"0": "2"
		}
	},
	"f54046c5-a40b-4657-86f9-3ab42a316cda":  {
		"option":  {
			"0": "plastik"
		}
	},
	"6934ed12-fd3b-4bd8-a729-a2d7cb65b681":  {
		"0":  {
			"value": "<p>\u0420\u0418\u0411 R570CL \u043e\u0441\u043d\u0430\u0449\u0451\u043d \u0432\u0441\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c, \u0432\u043a\u043b\u044e\u0447\u0430\u044f, \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441 \u043e\u0441\u0442\u0435\u043a\u043b\u0435\u043d\u0438\u0435\u043c, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043f\u043e\u0434 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u043e\u043c\u043f\u0443 \u0438 \u0445\u043e\u0434\u043e\u0432\u044b\u0435 \u043e\u0433\u043d\u0438.<\/p>"
		}
	},
	"87f86dec-9429-490d-bc39-89c118324b2c":  {
		"0":  {
			"value": "<p>\u041c\u043b\u0430\u0434\u0448\u0438\u0439, \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439. \u0420\u0418\u0411 R570CL \u043e\u0441\u043d\u0430\u0449\u0451\u043d \u0432\u0441\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c, \u0432\u043a\u043b\u044e\u0447\u0430\u044f, \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441 \u043e\u0441\u0442\u0435\u043a\u043b\u0435\u043d\u0438\u0435\u043c, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043f\u043e\u0434 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u043e\u043c\u043f\u0443 \u0438 \u0445\u043e\u0434\u043e\u0432\u044b\u0435 \u043e\u0433\u043d\u0438. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0441\u0432\u043e\u0438\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c, \u043e\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u0440\u0430\u0442\u044c \u043d\u0430 \u0431\u043e\u0440\u0442 5 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0438 \u0442\u043e\u043d\u043d\u0443 \u0433\u0440\u0443\u0437\u0430.<\/p>"
		}
	},
	"2e2078c0-555f-48fa-a639-28cd3f5f5afc":  {
		"option":  {
			"0": ""
		},
		"select": "1"
	},
	"a2c072cd-a064-49d1-9562-3b58b0ed04d5":  {
		"0":  {
			"value": "5,84"
		}
	},
	"b4d063f1-e606-413e-bc8b-57c63734835c":  {
		"0":  {
			"value": "2,50"
		}
	},
	"816b9e91-ca93-42df-9e59-79ead7ffcf65":  {
		"0":  {
			"value": "6"
		}
	},
	"05524b89-1c94-4911-a9f8-62a87ed2950d":  {
		"option":  {
			"0": ""
		},
		"select": "1"
	},
	"e1917d97-b793-4c19-8d97-b293b70ab04b":  {
		"check": "1"
	},
	"6ae7fbd8-6562-4324-88d1-1f7b01e1d148":  {
		"option":  {
			"0": "508"
		},
		"select": "1"
	},
	"71689c0d-dd13-43be-84dc-72cbf0dbd211":  {
		"option":  {
			"0": "60"
		},
		"select": "1"
	},
	"37e0a033-f7bb-466b-9d6d-f8af265f49f0":  {
		"file": "images\/com_zoo\/boat_image\/001.jpg",
		"title": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c",
		"link": "images\/com_zoo\/boat_image\/001.jpg",
		"target": "1",
		"rel": "",
		"width": 755,
		"height": 504
	},
	"094aa8df-8301-4c09-9555-f0c745b944b5":  {
		"file": "images\/com_zoo\/boat_image\/002.jpg",
		"title": "",
		"link": "images\/com_zoo\/boat_image\/002.jpg",
		"target": "1",
		"rel": "",
		"width": 900,
		"height": 599
	},
	"c1e3135d-73f8-4cf8-997a-fee9f82dd3ef":  {

	},
	"d3b46de9-dded-48d9-acc8-4d683ab2aa51":  {
		"0":  {
			"value": "550"
		}
	},
	"de81dc92-b633-4da9-87de-8f12f1de524c":  {
		"0":  {
			"value": ""
		}
	},
	"a9dab0c2-1c70-4f66-a847-3e956276dff9":  {
		"0":  {
			"value": ""
		}
	},
	"55d994cb-01f1-4503-aa19-7a86172bba29":  {

	},
	"77f7ca0c-dbde-4c8a-b5c3-65939df8d522":  {

	},
	"cea5f6c0-a653-4699-b049-ab398c11f922":  {
		"value": "1"
	},
	"251e0177-81d2-4ddc-bb5f-a15e09143e1b":  {
		"0":  {
			"value": "<p>1200 \u043a\u0433 \u041e\u0431\u044a\u0435\u043c \u0442\u043e\u043f\u043b\u0438\u0432\u043d\u043e\u0433\u043e \u0431\u0430\u043a\u0430 \u041e\u0441\u0430\u0434\u043a\u0430<\/p>"
		}
	},
	"1a14f1c4-6a75-4f31-ac39-d7554ac919f3":  {

	}
}
Да, хочу обновить данные в поле elements значениями из поля created_by_alias

Имеем таблицу jos_zoo_item, в ней данные created_by_alias и elements
created_by_alias = all-iazs
В поле elements
"title": ""

После запроса надо получить в поле elements:
"title": "all-iazs.jpg"

А я получаю:
jos_zoo_item.created_by_alias.jpg

Т.е. я хочу указать, чтобы для обновления данные брались из поля jos_zoo_item.created_by_alias, а у меня получается просто "jos_zoo_item.created_by_alias"
Т.е. я неправильно указываю путь к полю с данными что ли.

Вот кусок поля elements, который хочу изменить:


Образец как надо:

Код: Выделить всё

	"95173bea-c1d0-4c51-bd34-1ccba7014eab":  {
		"file": "images\/com_zoo\/boat_engine\/mercury\/mercury_2.5mh_fourstroke.jpg",
		"title": "Mercury 2.5MH FourStroke",
		"link": "images\/com_zoo\/boat_engine\/mercury\/mercury_2.5mh_fourstroke.jpg",
		"target": "0",
		"rel": "",
		"width": 500,
		"height": 377
	},


Мой результат:

Код: Выделить всё

	"95173bea-c1d0-4c51-bd34-1ccba7014eab":  {
		"file": "images\/com_zoo\/boat_engine\/mercury\/mercury_200l_pro_xs_optimax		[jos_zoo_item]![created_by_alias].jpg",
		"title": "[jos_zoo_item]![name]",
		"link": "[jos_zoo_item]![created_by_alias]",

		"width": 500,
		"height": 377
	},
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Ответить

Вернуться в «Сайтостроительство»

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей