Mayor
Специалист
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
Пол:
|
|
« Ответ #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
Специалист
Offline
|
|
« Ответ #3 : 19-06-2004 11:17 » |
|
Mayor, мануал не пробовал читать?
Пробовал да видимо не там читал там были только VarChar Спасибо за консультацию text типа вполне достаточно Теперь толька осталась задачка с вхождением в поля последовательности
|
|
|
Записан
|
1n c0de we trust
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #4 : 19-06-2004 13:57 » |
|
Mayor, говоря русским языком, тебе нужно найти строку, в которой встречается заданный образец? См. в мануале LIKE.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Mayor
Специалист
Offline
|
|
« Ответ #5 : 27-06-2004 06:45 » |
|
говоря русским языком
мне нужно было сосчитать число слов в строке . Похоже для этого придется изучать PHP с нуля или почмтать про С API в MySQL RXL, что будет попроще?
|
|
|
Записан
|
1n c0de we trust
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #6 : 29-06-2004 10:30 » |
|
Mayor, задача все равно не ясна... Какие слова? Любые, или только определенные? Слова MySQL считать не умеет. По крайней мере, мне такие ф-ии не известны. Загляни в мануал - может чего найдешь. Похоже для этого придется изучать PHP с нуля или почмтать про С API в MySQL RXL, что будет попроще? Объективного ответа дать не могу - все просто. Опять же, надо исходить из потребности.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #7 : 29-06-2004 11:13 » |
|
Не знаю будет ли работать, но можно попробовать
.select count(*) . from . (select <нужная строка> . from <your table>)
В Oracle это будет работать
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #8 : 29-06-2004 12:48 » |
|
Sla, пояни - что есть <нужная строка>?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #9 : 29-06-2004 13:31 » |
|
Для тех кто не понял повтряю select sq.count(*) from (select collumn_data from my_table where <придумайте сами>) sq Здесь вложенный запрос. По-моемому mySql этого не поймет Строка с разделителями будет представлена в виде таблицы
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #10 : 30-06-2004 04:46 » |
|
Sla, MySQL не понимает вложеных запросов. Эта фича анонсирована только в 5 версии, которая ещё на стадии разработки.
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
Sla
|
|
« Ответ #11 : 30-06-2004 08:51 » |
|
Я тут подумал на досуге - лучше бы не думал Не будет эта штука правильно работать, если строка существует count(*) вернет 1
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #12 : 30-06-2004 13:33 » |
|
Что вы, граждане? Вложенные запросы давно уже функционируют в 4.х
Sla, почитай вопрос внимательнее - слова нужно считать, а не строки выборки.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #13 : 30-06-2004 14:02 » |
|
Что вы, граждане? Вложенные запросы давно уже функционируют в 4.х
Sla, почитай вопрос внимательнее - слова нужно считать, а не строки выборки. Нука нука, интересно. А почему же не работает у меня ? MySQL 4.0.18 Тока UNION и работает
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #14 : 01-07-2004 08:23 » |
|
MOPO3, в 4.1 есть. Ветка считается девелоперской, но вполне работоспособна. Если нужно еще больше наворотов - возьми 5.0.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #15 : 01-07-2004 08:32 » |
|
RXL, я знаю о 4.1, только вот пока думаю ни на одном хостинге нема такой версии Поэтому считаю что если это продакшн сайт какой-то, то не стоит его точить под девелоперские версии БД ИМХО
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #16 : 01-07-2004 09:08 » |
|
Логично.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|