Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы / 13 сообщений из 13, страница 1 из 1
30.11.2015, 18:18:24
    #39116655
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Задача
Сделать UPDATE НОВОСТИ SET когда LIKE = перебором всех значений из другой таблицы

cron.php собирает новости. Все новости проходят премодерацию. Также есть таблица BAN где заносятся слова, часть которую если найти в НОВОСТЯХ, нужно сменить в НОВОСТЯХ статус к примеру = 1.
Искать нужно часть в любом месте (типа LIKE "%СЛОВО%")
...
Рейтинг: 0 / 0
30.11.2015, 18:32:48
    #39116668
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Сначала сделайте SELECT новостей из первой таблицы, которые соответствуют хотя бы одному шаблону из второй. Сумеете - преобразовать результат в запрос на обновление элементарно.
...
Рейтинг: 0 / 0
30.11.2015, 18:37:41
    #39116675
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
у меня штопор на этапе как таблицу в таблицу засунуть (по каких правилах)

например:
UPDATE НОВОСТИ SET del=1 LIKE ( ЧТО ДАЛЬШЕ ? ( SELECT TXT FROM BAN ))

к TXT сумею добавить %
А как LIKE правильно с таблицей соединить ?
...
Рейтинг: 0 / 0
30.11.2015, 18:45:50
    #39116685
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
AkinaСначала сделайте SELECT
Причём так, чтобы каждая новость, соответствующая какому-либо шаблону, выводилась только один раз.
...
Рейтинг: 0 / 0
30.11.2015, 19:00:28
    #39116709
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
а.. только одна запись? я думал SQL умеет, если там много записей, то UPDATE будет ровно столько дублироваться сколько в SELECT. А так видимо нельзя ?

тогда выгодней будет в PHP это делать. из MySQL черный список передавать в массив, или из файла (кешировать експорт/импорт) и дальше в цыкле делать UPDATE
...
Рейтинг: 0 / 0
30.11.2015, 19:06:17
    #39116718
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Андрей159я думал SQL умеет, если там много записей, то UPDATE будет ровно столько дублироваться сколько в SELECT. А так видимо нельзя ?
А вот для того, чтобы ответить на этот вопрос, нужно озвучить решаемую задачу. А не Ваши попытки её решить.
...
Рейтинг: 0 / 0
30.11.2015, 19:17:18
    #39116735
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Что-то подобное очень давно уже делал. Правильно меня настроили на путь SELECT, просто не складывалось это никак с UPDATE. А там как припоминаю нужно сделать сначала действительно SELECT и доставать поле ID

Если сделать SELECT в SELECT -> вывести все поля, в условиях SELECT проверять LIKE вывести ID как результат и сравнить его с ID тот что в хвосте UPDATE.

Правильно ?
...
Рейтинг: 0 / 0
30.11.2015, 22:27:28
    #39116821
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Делал такое раньше на ACCESS. Вот как это выглядит. Теперь попробую соединить в один запрос MySQL если получится с учетом того, что конкатенация здесь работает по другому и вместо "*" нужно записать "%"
...
Рейтинг: 0 / 0
30.11.2015, 22:52:41
    #39116830
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Помогите. Почти закончил. Дальше не знаю как связать две таблицы.

№1. ЗАПРОС "СЕЛЕКТ":
Код: sql
1.
SELECT * FROM `wall`, `wall_black_list` WHERE title_in_wall LIKE concat("%",searsh_field_in_black_list,"%")



В ACCESS я могу сохранить этот запрос и потом использовать в следующем запросе (как в №2), а тут я не знаю как его прикрепить к следующему запросу

№2 ЗАПРОС "UPDATA"
Код: sql
1.
UPDATE [Запрос"СЕЛЕКТ"] INNER JOIN wall ON [Запрос"СЕЛЕКТ"].id=wall.id SET delet = 1;
...
Рейтинг: 0 / 0
01.12.2015, 05:13:43
    #39116915
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Андрей159,
после акса таких вопросов возникать не должно, достаточно почитать мануалы по mysql, их много и на русском. по мимо всего есть и хранимые процедуры.
...
Рейтинг: 0 / 0
01.12.2015, 05:18:57
    #39116916
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Андрей159,
не очень хочется разжёвывать то, что человек может просто почитать, но не хочет, (без обид)
...
Рейтинг: 0 / 0
01.12.2015, 06:12:06
    #39116923
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Андрей159,
Код: sql
1.
2.
3.
4.
5.
UPDATE wall
SET delet = 1
WHERE EXISTS (
    SELECT 'x' FROM wall_black_list WHERE title_in_wall LIKE concat('%', searsh_field_in_black_list, '%')
)
...
Рейтинг: 0 / 0
01.12.2015, 11:07:52
    #39117090
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы
Вот, на сколько все гениально и просто. Большое спасибо Скукотища. Вы поймите, зачем мне учить полностью SQL BEGIN...END... PROC.. если не выделываю ничего особенного. Вот люди спрашивают на форумах как себя поведет процедура, если ее жизнь продолжается. Есть видимо много нюансов. Сейчас это темный лес. Дали бы подсказку за EXISTS - я бы читал, а все учить до конца - тогда и форума не надо. Спасибо
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сделать UPDATE SET когда LIKE = перебором всех значений из другой таблицы / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]