Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: MySQL стринговые функции  (Прочитано 16353 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mayor
Специалист

ru
Offline Offline

« : 18-06-2004 03:56 » 

В последнем проекте я допустил серьезную ошибку, сместив хеш поля относительно поля VarChar породившего их, в итоге поиск по любому хеш полю выдавал кортеж  VarChar-N, где VarChar соответствующий хеш коду кортеж, а N медленно росло к концу таблицы, или другими словами хеш код был поставлен в соответствие какой-то стороке расположенной перед требуемой.

Чтобы избавиться от этого мне нужно посчитать для каждого поля VarChar количество входяших в него определенных последовательностей символов  (для начала пробелов, но кто знает какие потом будут использоваться разделяющие последовательности). Как это сделать?

И еще, VarChar если не ошибаюсь длиной бывает до 255 символов, есть ли в MySQL какой-нить тип поля большего размера с которым работают стринговые функции?
Записан

1n c0de we trust
Kuzmich
Гость
« Ответ #1 : 18-06-2004 04:39 » 

Цитата

И еще, VarChar если не ошибаюсь длиной бывает до 255 символов, есть ли в MySQL какой-нить тип поля большего размера с которым работают стринговые функции?

что подразумевается под стринговыми функциями ?
текстовый тип большого размера - TEXT.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 18-06-2004 07:54 » 

Mayor, мануал не пробовал читать?

К текстовым относятся:
CHAR - 1..255
VARCHAR - 1..255
TINYTEXT,TINYBLOB - до 255
TEXT,BLOB - до 65535
MEDIUMTEXT,MEDIUMBLOB - до 16777215
LONGTEXT,LARGEBLOB - до 4294967295
а так же SET и ENUM.

CHAR, VARCHAR и *TEXT при сравнении не чуствительны к регистру (если не указано BINARY), а *BLOB - чуствителен.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Mayor
Специалист

ru
Offline Offline

« Ответ #3 : 19-06-2004 11:17 » 

Цитата

Mayor, мануал не пробовал читать?


Пробовал да видимо не там читал там были только VarChar
Спасибо за консультацию text типа вполне достаточно Улыбаюсь

Теперь толька осталась задачка с вхождением в поля последовательности Жаль
Записан

1n c0de we trust
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 19-06-2004 13:57 » 

Mayor, говоря русским языком, тебе нужно найти строку, в которой встречается заданный образец? См. в мануале LIKE.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Mayor
Специалист

ru
Offline Offline

« Ответ #5 : 27-06-2004 06:45 » 

Цитата

говоря русским языком


мне нужно было сосчитать число слов в строке .
Похоже для этого придется изучать PHP с нуля или почмтать про С API в MySQL
RXL, что будет попроще?
Записан

1n c0de we trust
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 29-06-2004 10:30 » 

Mayor, задача все равно не ясна... Какие слова? Любые, или только определенные?

Слова MySQL считать не умеет. По крайней мере, мне такие ф-ии не известны. Загляни в мануал - может чего найдешь.
Цитата
Похоже для этого придется изучать PHP с нуля или почмтать про С API в MySQL
RXL, что будет попроще?
Объективного ответа дать не могу  - все просто. Опять же, надо исходить из потребности.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 29-06-2004 11:13 » 

Не знаю будет ли работать, но можно попробовать

.select count(*)
. from
.  (select <нужная строка>
.      from <your table>)

В Oracle это будет работать
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 29-06-2004 12:48 » 

Sla, пояни - что есть <нужная строка>?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 29-06-2004 13:31 » 

Для тех кто не понял повтряю Улыбаюсь

select sq.count(*)
from
(select collumn_data
   from my_table
   where <придумайте сами>) sq

Здесь вложенный запрос. По-моемому mySql этого не поймет
Строка с разделителями будет представлена в виде таблицы
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #10 : 30-06-2004 04:46 » 

Sla, MySQL не понимает вложеных запросов. Эта фича анонсирована только в 5 версии, которая ещё на стадии разработки.
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 30-06-2004 08:51 » 

Я тут подумал на досуге  - лучше бы не думал Жаль
Не будет эта штука правильно работать, если строка существует count(*) вернет    1
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 30-06-2004 13:33 » 

Что вы, граждане? Вложенные запросы давно уже функционируют в 4.х

Sla, почитай вопрос внимательнее - слова нужно считать, а не строки выборки.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #13 : 30-06-2004 14:02 » 

Цитата: RXL
Что вы, граждане? Вложенные запросы давно уже функционируют в 4.х

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


Нука нука, интересно. А почему же не работает у меня ? MySQL 4.0.18
Тока UNION и работает Улыбаюсь
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 01-07-2004 08:23 » 

MOPO3, в 4.1 есть. Ветка считается девелоперской, но вполне работоспособна. Если нужно еще больше наворотов - возьми 5.0.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #15 : 01-07-2004 08:32 » 

RXL,  Ага я знаю о 4.1, только вот пока думаю ни на одном хостинге нема такой версии  Улыбаюсь Поэтому считаю что если это продакшн сайт какой-то, то не стоит его точить под девелоперские версии БД ИМХО Улыбаюсь
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 01-07-2004 09:08 » new

Логично.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines