Чистка конкретного поля в таблице MySQL

W
На сайте с 15.04.2013
Offline
0
2000

Здравствуйте, подскажите пожалуйста, как очистить конкретное поле в конкретной таблице MySQL ?

К примеру есть база database1, в ней 19 таблиц, среди которых есть таблица с именем amx_bans, в структуре этой таблицы размещено 17 полей, среди которых есть поле expired вот именно его мне нужно очистить (не удалить), как это правильно сделать через phpmyadmin?

Заранее благодарен!

TF-Studio
На сайте с 17.08.2010
Offline
334
#1
update amx_bans
set expired = ''

как-то так...

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
Slaxor
На сайте с 29.08.2011
Offline
115
#2

Вы имеете в виду значение поля? если так то просто через изменить (карандаш)

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3
Slaxor:
Вы имеете в виду значение поля? если так то просто через изменить (карандаш)

А если их не 17, а 17 тыщ?

Просто карандаш?

Запрос правильный показали. Тока ТС, обратите внимание, что это 2 одинарных ковычки(апостроф), а не одна двойная.

Подпись))
W
На сайте с 15.04.2013
Offline
0
#4

Поле expired имеет два значения

0 - активный бан

1 - истекший бан

мне нужно очистить именно истекшие баны, при этом нужно чтоб активные остались.

viКing
На сайте с 20.03.2008
Offline
124
#5
wellman:
мне нужно очистить именно истекшие баны, при этом нужно чтоб активные остались.

если поле может быть NULL, тогда ставьте NULL, пустая строка тут не прокатит

ValdisRu
На сайте с 02.10.2006
Offline
139
#6
wellman:
Поле expired имеет два значения
0 - активный бан
1 - истекший бан
мне нужно очистить именно истекшие баны, при этом нужно чтоб активные остались.

а что значит "очистить"?? удалить эти строки получается надо? тогда примерно так

delete from amx_bans where expired = 1

ps на всякий случай сделайте бекап всей таблицы

Обалденный заработок на социальных сетях (https://goo.gl/Qtsq6M)
W
На сайте с 15.04.2013
Offline
0
#7
ValdisRu:
а что значит "очистить"?? удалить эти строки получается надо? тогда примерно так
delete from amx_bans where expired = 1

ps на всякий случай сделайте бекап всей таблицы

Спасибо , это то что нужно. И ещё вопрос, чтоб истекшие удалялись автоматически, будет достаточно в поле expired выставить NULL ?

Сейчас там вот так:

Поле: expired
Тип: INT
Длина/значения: 1
По умолчанию: Как определено
0
Сравнение: пусто
Атрибуты: пусто
NULL: пусто
AUTO_INCREMENT: пусто
Комментарии: пусто
ValdisRu
На сайте с 02.10.2006
Offline
139
#8
wellman:
Спасибо , это то что нужно. И ещё вопрос, чтоб истекшие удалялись автоматически, будет достаточно в поле expired выставить NULL ?

для того чтобы строки автоматически удалялись нужно чтоб был этот автомат который их будет удалять (сумбурно как то получилось)

я так понимаю что изначально в таблицу добавляются строки с активным баном т.е. expired = 0

также у вас есть некий код который в определенные моменты времени и/или при срабатывании опреденных условий делает строку активный бан в истекший т.е. обновляет значение expired на 1

возможно, что эти строки можно как то анализировать что ли - у кого сколько банов было и т.п. но вам они стали мешать

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

но если в код лезть нежелательно то можно оставить все как есть но создать задание в кроне удалять строки в которых expired = 1 и выполнять его например один раз в сутки (кстати после удаления строк из таблицы у нее может появится фрагментация, в кроне тоже можно делать дефрагментацию таблицы)

W
На сайте с 15.04.2013
Offline
0
#9

Спасибо за исчерпывающую информацию.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий