2014-03-19 12:25 GMT-03:00 Peter Laursen <peter_laursen@webyog.com>:
I feel like to comment here on "because it can't use indexes for such things".  This is not a serious reply IMO. It is just another way or saying "Please shut up!"

yes
 

How many existing string functions (http://dev.mysql.com/doc/refman/5.6/en/string-functions.html) use an index? Does "select concat('a','b');" do for instance? I cannot think of any. And why do we have 'stored programs' if a database server should only do things that uses indexes? Does a WHILE-loop inside a stroed program use an index? 

Unlike most other RDBMS, MySQL has a tradition to do things in the application thet other RDBMS would do in the database. But that traditions is/was because of lack of functionality in the server before 5.0 (what is still the case in some respects.  Try compare a MySQL TRIGGER with an Oracle or SQL Server same, for instance).

That said: this functionality can be implemented in a stored function using existing string functions (or in the application, as sugggested) quite easily. It is not possible (or desirable) to add build-in functions for everything.  And I have no clue is such string function exists in other RDBMS. 

if i have gcc and mariadb source here i could create a native function, that`s very fast, but i have only heidisql :) 
thanks for the idea of replace and difference, that worked very nice =)

i don`t know why, but many functions (of php for example) could be implemented easily, but why not implement it? there`s a sql 2000 standard or something like it to disallow this kind of functions?
maybe we could create a plugin with many function native to mariadb, and set it on/off to allow a mysql compatibility

 


-- Peter
-- Webyog


On Wed, Mar 19, 2014 at 4:03 PM, Reindl Harald <h.reindl@thelounge.net> wrote:


Am 19.03.2014 15:51, schrieb Roberto Spadim:
> hi guys, i'm not finding a function to return how many character i have, for example:
>
> "banana"
>
> i want a function that return 2 "n" characters, example:
> substr_count("banana","n") => 2
>
> sorry it a begginners question, but i didn't found it in mysql/mariadb manual

that is not the job of the database server because it
can't use indexes for such things - just iterate
the result and do it in the application


_______________________________________________
Mailing list: https://launchpad.net/~maria-discuss
Post to     : maria-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-discuss
More help   : https://help.launchpad.net/ListHelp



_______________________________________________
Mailing list: https://launchpad.net/~maria-discuss
Post to     : maria-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-discuss
More help   : https://help.launchpad.net/ListHelp




--
Roberto Spadim
SPAEmpresarial
Eng. Automação e Controle