<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Gary Pendergast &#187; replace</title> <atom:link href="http://pento.net/tag/replace/feed/" rel="self" type="application/rss+xml" /><link>http://pento.net</link> <description>I&#039;m on the Internet</description> <lastBuildDate>Thu, 17 May 2012 04:24:17 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <cloud
domain='pento.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' /> <item><title>Case Insensitive REPLACE() for MySQL</title><link>http://pento.net/2009/02/15/case-insensitive-replace-for-mysql/</link> <comments>http://pento.net/2009/02/15/case-insensitive-replace-for-mysql/#comments</comments> <pubDate>Sun, 15 Feb 2009 12:22:18 +0000</pubDate> <dc:creator>Gary</dc:creator> <category><![CDATA[MySQL]]></category> <category><![CDATA[function]]></category> <category><![CDATA[MySQL Forge]]></category> <category><![CDATA[replace]]></category> <guid
isPermaLink="false">http://pento.net/?p=54</guid> <description><![CDATA[One request I occasionally see is for a case insensitive version of REPLACE() for MySQL. I wrote this a while back, but here it is now for all of you to play around with. It uses a basic naïve string search algorithm, so can be slow under some circumstances. DELIMITER $$ &#160; DROP FUNCTION IF [...]]]></description> <content:encoded><![CDATA[<p>One request I occasionally see is for a case insensitive version of REPLACE() for MySQL. I wrote this a while back, but here it is now for all of you to play around with. It uses a basic naïve string search algorithm, so can be slow under some circumstances.</p><div
class="wp_syntax"><div
class="code"><pre class="sql" style="font-family:monospace;">DELIMITER $$
&nbsp;
<span style="color: #993333; font-weight: bold;">DROP</span> <span style="color: #993333; font-weight: bold;">FUNCTION</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`replace_ci`</span>$$
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">FUNCTION</span> <span style="color: #ff0000;">`replace_ci`</span> <span style="color: #66cc66;">&#40;</span> str TEXT<span style="color: #66cc66;">,</span>needle <span style="color: #993333; font-weight: bold;">CHAR</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>str_rep <span style="color: #993333; font-weight: bold;">CHAR</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #993333; font-weight: bold;">RETURNS</span> TEXT
    DETERMINISTIC
    <span style="color: #993333; font-weight: bold;">BEGIN</span>
        <span style="color: #993333; font-weight: bold;">DECLARE</span> return_str TEXT <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #ff0000;">''</span>;
        <span style="color: #993333; font-weight: bold;">DECLARE</span> lower_str TEXT;
        <span style="color: #993333; font-weight: bold;">DECLARE</span> lower_needle TEXT;
        <span style="color: #993333; font-weight: bold;">DECLARE</span> pos <span style="color: #993333; font-weight: bold;">INT</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #cc66cc;">1</span>;
        <span style="color: #993333; font-weight: bold;">DECLARE</span> old_pos <span style="color: #993333; font-weight: bold;">INT</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #cc66cc;">1</span>;
&nbsp;
        <span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">LOWER</span><span style="color: #66cc66;">&#40;</span>str<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> lower_str;
        <span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">LOWER</span><span style="color: #66cc66;">&#40;</span>needle<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> lower_needle;
        <span style="color: #993333; font-weight: bold;">SELECT</span> locate<span style="color: #66cc66;">&#40;</span>lower_needle<span style="color: #66cc66;">,</span> lower_str<span style="color: #66cc66;">,</span> pos<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> pos;
        WHILE pos <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span> DO
            <span style="color: #993333; font-weight: bold;">SELECT</span> concat<span style="color: #66cc66;">&#40;</span>return_str<span style="color: #66cc66;">,</span> substr<span style="color: #66cc66;">&#40;</span>str<span style="color: #66cc66;">,</span> old_pos<span style="color: #66cc66;">,</span> pos<span style="color: #66cc66;">-</span>old_pos<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> str_rep<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> return_str;
            <span style="color: #993333; font-weight: bold;">SELECT</span> pos <span style="color: #66cc66;">+</span> <span style="color: #993333; font-weight: bold;">CHAR_LENGTH</span><span style="color: #66cc66;">&#40;</span>needle<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> pos;
            <span style="color: #993333; font-weight: bold;">SELECT</span> pos <span style="color: #993333; font-weight: bold;">INTO</span> old_pos;
            <span style="color: #993333; font-weight: bold;">SELECT</span> locate<span style="color: #66cc66;">&#40;</span>lower_needle<span style="color: #66cc66;">,</span> lower_str<span style="color: #66cc66;">,</span> pos<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> pos;
        <span style="color: #993333; font-weight: bold;">END</span> WHILE;
        <span style="color: #993333; font-weight: bold;">SELECT</span> concat<span style="color: #66cc66;">&#40;</span>return_str<span style="color: #66cc66;">,</span> substr<span style="color: #66cc66;">&#40;</span>str<span style="color: #66cc66;">,</span> old_pos<span style="color: #66cc66;">,</span> <span style="color: #993333; font-weight: bold;">CHAR_LENGTH</span><span style="color: #66cc66;">&#40;</span>str<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">INTO</span> return_str;
        <span style="color: #993333; font-weight: bold;">RETURN</span> return_str;
<span style="color: #993333; font-weight: bold;">END</span>$$
&nbsp;
DELIMITER ;
&nbsp;
<span style="color: #993333; font-weight: bold;">SELECT</span> replace_ci<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'mySQL'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'M'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'M'</span> <span style="color: #66cc66;">&#41;</span>;</pre></div></div><p>It&#8217;s also available on <a
title="Case Insensitive REPLACE() for MySQL on MySQL Forge" href="http://forge.mysql.com/tools/tool.php?id=135">MySQL Forge</a>.</p> ]]></content:encoded> <wfw:commentRss>http://pento.net/2009/02/15/case-insensitive-replace-for-mysql/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> </channel> </rss>
