uForum.uz

uForum.uz (https://uforum.uz/index.php)
-   ЦППМП (https://uforum.uz/forumdisplay.php?f=222)
-   -   Прошу помочь с объяснением запроса (https://uforum.uz/showthread.php?t=2836)

Elyor Xudayberdiev 24.10.2007 11:58

Прошу помочь с объяснением запроса
 
может кто-нибудь объяснить, что этот запрос выполняет?
DELETE FROM `prof_configs` WHERE CONVERT(`prof_configs`.`name` USING utf8) = 'max_files' LIMIT 1"
заранее спасибо
p.s. prof_configs - имя таблицы, name - имя поля. это я знаю, а остальное вообще не могу догнать

Vladimir Sagov 24.10.2007 12:18

DELETE FROM `prof_configs` WHERE CONVERT(`prof_configs`.`name` USING utf8 ) = 'max_files' LIMIT 1"

Удалить всё с таблицы prof_configs где (поле name преобразованое с использованием utf8 ) равняется 'max_files' лимит строк 1.

Akmal Bafoev 24.10.2007 12:22

не совсем так

удалить максимум 1 запись из таблицы prof_configs где поле name в кодировке utf8 равно max_files

Vladimir Sagov 24.10.2007 12:26

Цитата:

Сообщение от Akmal Bafoev (Сообщение 47372)
не совсем так

удалить максимум 1 запись из таблицы prof_configs где поле name в кодировке utf8 равно max_files

Да так вернее. Что то мне запятая показалась. Никогда не использовал это.

Elyor Xudayberdiev 24.10.2007 12:41

большое спасибо всем за ответ!
так, теперь следующий вопрос, если вы не против:
ситуация вот какая - есть сервер mysql, за бугром, консольного доступа нет. все изменения делаются через запросы на php. добавил запись в таблицу в кодировке win-1251, а когда запрашиваю select'ом, выводится "????????". созранял php с кодировкой utf8, почти то же самое, только каракули другие. show variables выводит следующее:
character_set_client latin1
character_set_connection latin1
character_set_database utf8
character_set_filesystem binary
character_set_results latin1
character_set_server utf8
character_set_system utf8
и что мне делать теперь?
P. S. просьба не кидать камнями, новичок я ещё

Vladimir Sagov 24.10.2007 13:15

Я после подключения и выбора БД ставлю эти вот строчки. Проблем с отображением русского не было ниразу.

mysql_query("set character_set_client='cp1251';");
mysql_query("set character_set_results='cp1251';");
mysql_query("set collation_connection='cp1251_general_ci';");

Elyor Xudayberdiev 24.10.2007 13:16

ещё раз спасибо большое!
если что не так будет - i'll be back (c) :)

Elyor Xudayberdiev 24.10.2007 13:54

так-с, ничего у меня не получилось. запрос выполнил, но ничего не изменилось (в смысле при show variables кодировки остались прежними).
есть ещё варианты какие?

Eldar Ishimbaev 24.10.2007 14:01

Дело в том, что по умолчания у мускула при установке кодировка устанавливается latin1 и таблицы потом создавать лучше в latin1_swedish_ci, если нет возможности переконфигурировать клиент. Создайте базу в кодировке latin1.

Ruslan Aliev 24.10.2007 14:05

Цитата:

Сообщение от Elyor Xudayberdiev (Сообщение 47410)
так-с, ничего у меня не получилось. запрос выполнил, но ничего не изменилось (в смысле при show variables кодировки остались прежними).
есть ещё варианты какие?

1 - Как вы заносите данные в БД? (если через phpMyAdmin то информация отображаемая им, и на сайте могут различаться, я имею ввиду что в phpMyADmin могут быть видны ????? а на сайте нормальные слова)
2 - Как вы просматриваете БД? (т.е. в какой кодировке генерируется страница. В какой кодировке таблица . В какой кодировке соединение.)

Самый простой способ дать запрос "SET NAMES 'cp1251'" СРАЗУ после коннекта с БД.
Обязательно чтобы такое соединение устанавливалось и при заливке данных и при чтении.

Elyor Xudayberdiev 24.10.2007 14:19

а не подскажите где взять редактор для сохранения в latin1?

Elyor Xudayberdiev 24.10.2007 14:23

To Rustam Valiev
@mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($dbname);

Elyor Xudayberdiev 24.10.2007 15:10

большое спасибо Rustam Valiev, с SET NAMES всё заработало

Elyor Xudayberdiev 24.10.2007 15:40

так, СТОП! когда при заполнении дал set names, я грохнул базу со всем содержимым:shok:. есть ли ещё какие-нибудь другие способы?

Djalolatdin Rakhimov 24.10.2007 15:49

Цитата:

Сообщение от Elyor Xudayberdiev (Сообщение 47432)
я грохнул базу со всем содержимым. есть ли ещё какие-нибудь другие способы?

Еще какие-нибудь способы еще раз грохнуть базу? :) Уже грохнули, зачем еще способы?

Elyor Xudayberdiev 24.10.2007 15:49

Djalolatdin Rakhimov, оказалось, что грохнул только одну таблицу :)

Vladimir Sagov 24.10.2007 16:21

Цитата:

Сообщение от Elyor Xudayberdiev (Сообщение 47435)
Djalolatdin Rakhimov, оказалось, что грохнул только одну таблицу :)

Сколько там ещё осталось? :)

Elyor Xudayberdiev 25.10.2007 10:19

Цитата:

Сообщение от Vladimir Sagov (Сообщение 47448)
Сколько там ещё осталось?

ещё есть поэкспериментировать :)

Denis Belov 25.10.2007 10:26

Цитата:

Сообщение от Elyor Xudayberdiev (Сообщение 47432)
так, СТОП! когда при заполнении дал set names, я грохнул базу со всем содержимым:shok:. есть ли ещё какие-нибудь другие способы?

Оффтоп:
drop database название_базы;

Rustam Khodjaev 26.10.2007 14:59

Цитата:

Сообщение от Elyor Xudayberdiev (Сообщение 47432)
так, СТОП! когда при заполнении дал set names, я грохнул базу со всем содержимым. есть ли ещё какие-нибудь другие способы?

set names вообщето никак не может грохнуть базу, у меня оно везде (т.е во всех сайтах и приложениях) стоит и прекрасно работет + и фактически и физически не может удалить таблицу или базу. тем более это самый простой способ.

Ruslan Aliev 26.10.2007 17:11

Цитата:

Сообщение от Elyor Xudayberdiev (Сообщение 47432)
так, СТОП! когда при заполнении дал set names, я грохнул базу со всем содержимым:shok:. есть ли ещё какие-нибудь другие способы?

Сама команда не может удалить БД. Она просто устанавливает переменные окружения в нужное значение.
Посмотрите свои запросы. Таблицу можно :
- очистить запросом DELETE FROM `table` WHERE ..... (условия самые различные например 1 == 1 - удаляет всю таблицу)
- очистить запросом TRANCATE `table` - сбрасывается даже значение автоинкремента.
- удалить запросом DROP TABLE `table` - удаляется собственно сама таблица без возможности восстановления.
SET NAMES - здесь не при чем.

Djalolatdin Rakhimov 26.10.2007 17:20

Цитата:

Сообщение от Rustam Khodjaev (Сообщение 48150)
set names вообщето никак не может грохнуть базу

а если к ней привязать вызов какой-нить хранимой процедуры, которая и грохнет базу :)

Rustam Khamidov 27.10.2007 13:48

Цитата:

Сообщение от Djalolatdin Rakhimov (Сообщение 48196)
а если к ней привязать вызов какой-нить хранимой процедуры, которая и грохнет базу :)

Не уверен что к SET NAMES можно привязать хранимую процедуру без изменения сырцов mysql или pgsql.
И потом синтаксис вызова хранимой процедуры отличается.
:-)

Rustam Khamidov 27.10.2007 14:06

Цитата:

Сообщение от Elyor Xudayberdiev (Сообщение 47417)
а не подскажите где взять редактор для сохранения в latin1?

можно уточнить, что конкретно вы хотите сделать?

Djalolatdin Rakhimov 27.10.2007 14:16

Цитата:

Сообщение от Rustam Khamidov (Сообщение 48313)
Не уверен что к SET NAMES можно привязать хранимую процедуру без изменения сырцов mysql или pgsql.
И потом синтаксис вызова хранимой процедуры отличается.
:-)

да я пошутил (поиздевался) :)

Rustam Khamidov 27.10.2007 15:24

Цитата:

Сообщение от Djalolatdin Rakhimov (Сообщение 48321)
да я пошутил (поиздевался) :)

:) я прекрасо это понял!

Извиняюсь, но я в свою очередь испугался, что многие клиенты хостинга услышав от меня в очередной раз - "юзайте set names", начнут, мне, глупому, объяснять, что кто его знает насколько сиё опасно и посылать за разъяснением на этот форум :)

Elyor Xudayberdiev 02.11.2007 14:04

всё, уже разобрался. хватит прикалываться надо мной :).

korvin 02.11.2007 21:05

Цитата:

Сообщение от Rustam Khamidov (Сообщение 48313)
Не уверен что к SET NAMES можно привязать хранимую процедуру без изменения сырцов mysql или pgsql.
И потом синтаксис вызова хранимой процедуры отличается.
:-)

Вообще то насколько я знаю MySQL 5 ветки поддерживает триггеры. А их как известно можно привязывать к определенным событиям.
Я правда не спец в этом вопросе, поэтому если что прошу поправить.

korvin 02.11.2007 21:08

Цитата:

Сообщение от Elyor Xudayberdiev (Сообщение 49772)
всё, уже разобрался. хватит прикалываться надо мной :).

Так что было то?

Djalolatdin Rakhimov 02.11.2007 23:27

Цитата:

Сообщение от korvin (Сообщение 49830)
Так что было то?

Elyor, не обижайся, мы шутили просто так, ничего личного. Без шуток время от времени никак :)

Elyor Xudayberdiev 03.11.2007 12:18

Цитата:

Сообщение от Djalolatdin Rakhimov (Сообщение 49844)
Elyor, не обижайся, мы шутили просто так, ничего личного. Без шуток время от времени никак :)

ну я понял, что шутка, отсюда и ":)"


Текущее время: 05:36. Часовой пояс GMT +5.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
OOO «Единый интегратор UZINFOCOM»