<?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>dev/null &#187; snippet</title>
	<atom:link href="http://devnull.fuoriradio.com/tag/snippet/feed/" rel="self" type="application/rss+xml" />
	<link>http://devnull.fuoriradio.com</link>
	<description>appunti interessanti e non di un programmatore</description>
	<lastBuildDate>Tue, 19 Apr 2011 15:22:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Rimuovere record duplicati da un database Mysql.</title>
		<link>http://devnull.fuoriradio.com/2010/10/11/rimuovere-record-duplicati-da-un-database-mysql/</link>
		<comments>http://devnull.fuoriradio.com/2010/10/11/rimuovere-record-duplicati-da-un-database-mysql/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 13:37:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=429</guid>
		<description><![CDATA[Abbiamo commesso un errore e ci troviamo con una tabella piena di record duplicati in un campo chiave che doveva essere UNIQUE. Istintivamente viene da scrivere delle query con dei group by e dei count(), ci accorgiamo che è complicato, soprattuto se i record non sono solo duplicati ma triplicati etc. La soluzione invece è [...]]]></description>
			<content:encoded><![CDATA[<p>Abbiamo commesso un errore e ci troviamo con una tabella piena di record duplicati in un campo chiave che doveva essere <strong>UNIQUE</strong>.<br />
Istintivamente viene da scrivere delle query con dei <em>group by</em> e dei <em>count()</em>, ci accorgiamo che è complicato, soprattuto se i record non sono solo duplicati ma triplicati etc. La soluzione invece è semplice, il rasoio di OCCAM ci dice di trovarla, se la nostra tabella avesse avuto il campo UNIQUE, non avremmo avuto questo problema, quindi diciamo a mysql che DEVE ESSERE UNIQUE (il trucco sta nel dirgli di ignorare l&#8217;errore):</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">IGNORE</span> <span style="color: #993333; font-weight: bold;">TABLE</span>  <span style="color: #ff0000;">`tabellaerrata`</span> <span style="color: #993333; font-weight: bold;">ADD</span> <span style="color: #993333; font-weight: bold;">UNIQUE</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`campochedeveessereunique`</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Problema risolto.</p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F10%2F11%2Frimuovere-record-duplicati-da-un-database-mysql%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/10/11/rimuovere-record-duplicati-da-un-database-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>base64_encode/decode in mysql</title>
		<link>http://devnull.fuoriradio.com/2010/03/19/base64_encodedecode-in-mysql/</link>
		<comments>http://devnull.fuoriradio.com/2010/03/19/base64_encodedecode-in-mysql/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 15:02:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open source]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=322</guid>
		<description><![CDATA[Ho trovato questo interessante script mysql di Ian Gulliver per convertire in base64 un blob e viceversa senza doversi rivolgere al PHP. Lo copio qui sotto per comoda reperibilità -- base64.sql - MySQL base64 encoding/decoding functions -- Copyright (C) 2006 Ian Gulliver -- -- This program is free software; you can redistribute it and/or modify [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float:left; margin: 8px" src="http://snapcasa.com/get.aspx?code=9019&size=l&url=http%3A%2F%2Fwww.mysql.com"/ ><br />
Ho trovato questo interessante script mysql di Ian Gulliver per convertire in base64 un blob e viceversa senza doversi rivolgere al PHP.<br />
Lo copio qui sotto per comoda reperibilità <img src='http://devnull.fuoriradio.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><span id="more-322"></span></p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">-- base64.sql - MySQL base64 encoding/decoding functions</span>
<span style="color: #808080; font-style: italic;">-- Copyright (C) 2006 Ian Gulliver</span>
<span style="color: #808080; font-style: italic;">-- </span>
<span style="color: #808080; font-style: italic;">-- This program is free software; you can redistribute it and/or modify</span>
<span style="color: #808080; font-style: italic;">-- it under the terms of version 2 of the GNU General Public License as</span>
<span style="color: #808080; font-style: italic;">-- published by the Free Software Foundation.</span>
<span style="color: #808080; font-style: italic;">-- </span>
<span style="color: #808080; font-style: italic;">-- This program is distributed in the hope that it will be useful,</span>
<span style="color: #808080; font-style: italic;">-- but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span style="color: #808080; font-style: italic;">-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<span style="color: #808080; font-style: italic;">-- GNU General Public License for more details.</span>
<span style="color: #808080; font-style: italic;">-- </span>
<span style="color: #808080; font-style: italic;">-- You should have received a copy of the GNU General Public License</span>
<span style="color: #808080; font-style: italic;">-- along with this program; if not, write to the Free Software</span>
<span style="color: #808080; font-style: italic;">-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
&nbsp;
delimiter <span style="color: #CC0099;">|</span>
&nbsp;
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #990099; font-weight: bold;">TABLE</span> <span style="color: #009900;">IF</span> <span style="color: #990099; font-weight: bold;">EXISTS</span> base64_data <span style="color: #CC0099;">|</span>
<span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> base64_data <span style="color: #FF00FF;">&#40;</span>c <span style="color: #000099;">CHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">BINARY</span><span style="color: #000033;">,</span> val <span style="color: #999900; font-weight: bold;">TINYINT</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">|</span>
<span style="color: #990099; font-weight: bold;">INSERT</span> <span style="color: #990099; font-weight: bold;">INTO</span> base64_data <span style="color: #990099; font-weight: bold;">VALUES</span> 
	<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'A'</span><span style="color: #000033;">,</span><span style="color: #008080;">0</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'B'</span><span style="color: #000033;">,</span><span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'C'</span><span style="color: #000033;">,</span><span style="color: #008080;">2</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'D'</span><span style="color: #000033;">,</span><span style="color: #008080;">3</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'E'</span><span style="color: #000033;">,</span><span style="color: #008080;">4</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'F'</span><span style="color: #000033;">,</span><span style="color: #008080;">5</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'G'</span><span style="color: #000033;">,</span><span style="color: #008080;">6</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'H'</span><span style="color: #000033;">,</span><span style="color: #008080;">7</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'I'</span><span style="color: #000033;">,</span><span style="color: #008080;">8</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'J'</span><span style="color: #000033;">,</span><span style="color: #008080;">9</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span>
	<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'K'</span><span style="color: #000033;">,</span><span style="color: #008080;">10</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'L'</span><span style="color: #000033;">,</span><span style="color: #008080;">11</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'M'</span><span style="color: #000033;">,</span><span style="color: #008080;">12</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'N'</span><span style="color: #000033;">,</span><span style="color: #008080;">13</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'O'</span><span style="color: #000033;">,</span><span style="color: #008080;">14</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'P'</span><span style="color: #000033;">,</span><span style="color: #008080;">15</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'Q'</span><span style="color: #000033;">,</span><span style="color: #008080;">16</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'R'</span><span style="color: #000033;">,</span><span style="color: #008080;">17</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'S'</span><span style="color: #000033;">,</span><span style="color: #008080;">18</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'T'</span><span style="color: #000033;">,</span><span style="color: #008080;">19</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span>
	<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'U'</span><span style="color: #000033;">,</span><span style="color: #008080;">20</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'V'</span><span style="color: #000033;">,</span><span style="color: #008080;">21</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'W'</span><span style="color: #000033;">,</span><span style="color: #008080;">22</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'X'</span><span style="color: #000033;">,</span><span style="color: #008080;">23</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'Y'</span><span style="color: #000033;">,</span><span style="color: #008080;">24</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'Z'</span><span style="color: #000033;">,</span><span style="color: #008080;">25</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'a'</span><span style="color: #000033;">,</span><span style="color: #008080;">26</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'b'</span><span style="color: #000033;">,</span><span style="color: #008080;">27</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'c'</span><span style="color: #000033;">,</span><span style="color: #008080;">28</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'d'</span><span style="color: #000033;">,</span><span style="color: #008080;">29</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span>
	<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'e'</span><span style="color: #000033;">,</span><span style="color: #008080;">30</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'f'</span><span style="color: #000033;">,</span><span style="color: #008080;">31</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'g'</span><span style="color: #000033;">,</span><span style="color: #008080;">32</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'h'</span><span style="color: #000033;">,</span><span style="color: #008080;">33</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'i'</span><span style="color: #000033;">,</span><span style="color: #008080;">34</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'j'</span><span style="color: #000033;">,</span><span style="color: #008080;">35</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'k'</span><span style="color: #000033;">,</span><span style="color: #008080;">36</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'l'</span><span style="color: #000033;">,</span><span style="color: #008080;">37</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'m'</span><span style="color: #000033;">,</span><span style="color: #008080;">38</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'n'</span><span style="color: #000033;">,</span><span style="color: #008080;">39</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span>
	<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'o'</span><span style="color: #000033;">,</span><span style="color: #008080;">40</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'p'</span><span style="color: #000033;">,</span><span style="color: #008080;">41</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'q'</span><span style="color: #000033;">,</span><span style="color: #008080;">42</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'r'</span><span style="color: #000033;">,</span><span style="color: #008080;">43</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'s'</span><span style="color: #000033;">,</span><span style="color: #008080;">44</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'t'</span><span style="color: #000033;">,</span><span style="color: #008080;">45</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'u'</span><span style="color: #000033;">,</span><span style="color: #008080;">46</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'v'</span><span style="color: #000033;">,</span><span style="color: #008080;">47</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'w'</span><span style="color: #000033;">,</span><span style="color: #008080;">48</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'x'</span><span style="color: #000033;">,</span><span style="color: #008080;">49</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span>
	<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'y'</span><span style="color: #000033;">,</span><span style="color: #008080;">50</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'z'</span><span style="color: #000033;">,</span><span style="color: #008080;">51</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'0'</span><span style="color: #000033;">,</span><span style="color: #008080;">52</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'1'</span><span style="color: #000033;">,</span><span style="color: #008080;">53</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'2'</span><span style="color: #000033;">,</span><span style="color: #008080;">54</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'3'</span><span style="color: #000033;">,</span><span style="color: #008080;">55</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'4'</span><span style="color: #000033;">,</span><span style="color: #008080;">56</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'5'</span><span style="color: #000033;">,</span><span style="color: #008080;">57</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'6'</span><span style="color: #000033;">,</span><span style="color: #008080;">58</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'7'</span><span style="color: #000033;">,</span><span style="color: #008080;">59</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span>
	<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'8'</span><span style="color: #000033;">,</span><span style="color: #008080;">60</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'9'</span><span style="color: #000033;">,</span><span style="color: #008080;">61</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'+'</span><span style="color: #000033;">,</span><span style="color: #008080;">62</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'/'</span><span style="color: #000033;">,</span><span style="color: #008080;">63</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'='</span><span style="color: #000033;">,</span><span style="color: #008080;">0</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">|</span>
&nbsp;
&nbsp;
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #990099; font-weight: bold;">FUNCTION</span> <span style="color: #009900;">IF</span> <span style="color: #990099; font-weight: bold;">EXISTS</span> BASE64_DECODE <span style="color: #CC0099;">|</span>
<span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">FUNCTION</span> BASE64_DECODE <span style="color: #FF00FF;">&#40;</span>input <span style="color: #999900; font-weight: bold;">BLOB</span><span style="color: #FF00FF;">&#41;</span>
	<span style="color: #990099; font-weight: bold;">RETURNS</span> <span style="color: #999900; font-weight: bold;">BLOB</span>
	<span style="color: #990099; font-weight: bold;">CONTAINS SQL</span>
	<span style="color: #990099; font-weight: bold;">DETERMINISTIC</span>
	<span style="color: #990099; font-weight: bold;">SQL SECURITY</span> <span style="color: #990099; font-weight: bold;">INVOKER</span>
<span style="color: #990099; font-weight: bold;">BEGIN</span>
	<span style="color: #990099; font-weight: bold;">DECLARE</span> ret <span style="color: #999900; font-weight: bold;">BLOB</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008000;">''</span><span style="color: #000033;">;</span>
	<span style="color: #990099; font-weight: bold;">DECLARE</span> done <span style="color: #999900; font-weight: bold;">TINYINT</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
&nbsp;
	<span style="color: #009900;">IF</span> input <span style="color: #CC0099; font-weight: bold;">IS</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #009900;">THEN</span>
		RETURN <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">;</span>
	<span style="color: #009900;">END</span> <span style="color: #009900;">IF</span><span style="color: #000033;">;</span>
&nbsp;
each_block:
	WHILE <span style="color: #CC0099; font-weight: bold;">NOT</span> done <span style="color: #990099; font-weight: bold;">DO</span> <span style="color: #990099; font-weight: bold;">BEGIN</span>
		<span style="color: #990099; font-weight: bold;">DECLARE</span> accum_value <span style="color: #999900; font-weight: bold;">BIGINT</span> <span style="color: #FF9900; font-weight: bold;">UNSIGNED</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
		<span style="color: #990099; font-weight: bold;">DECLARE</span> in_count <span style="color: #999900; font-weight: bold;">TINYINT</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
		<span style="color: #990099; font-weight: bold;">DECLARE</span> out_count <span style="color: #999900; font-weight: bold;">TINYINT</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008080;">3</span><span style="color: #000033;">;</span>
&nbsp;
each_input_char:
		WHILE in_count <span style="color: #CC0099;">&lt;</span> <span style="color: #008080;">4</span> <span style="color: #990099; font-weight: bold;">DO</span> <span style="color: #990099; font-weight: bold;">BEGIN</span>
			<span style="color: #990099; font-weight: bold;">DECLARE</span> first_char <span style="color: #000099;">CHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
&nbsp;
			<span style="color: #009900;">IF</span> <span style="color: #000099;">LENGTH</span><span style="color: #FF00FF;">&#40;</span>input<span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">=</span> <span style="color: #008080;">0</span> <span style="color: #009900;">THEN</span>
				RETURN ret<span style="color: #000033;">;</span>
			<span style="color: #009900;">END</span> <span style="color: #009900;">IF</span><span style="color: #000033;">;</span>
&nbsp;
			<span style="color: #990099; font-weight: bold;">SET</span> first_char <span style="color: #CC0099;">=</span> <span style="color: #000099;">SUBSTRING</span><span style="color: #FF00FF;">&#40;</span>input<span style="color: #000033;">,</span><span style="color: #008080;">1</span><span style="color: #000033;">,</span><span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
			<span style="color: #990099; font-weight: bold;">SET</span> input <span style="color: #CC0099;">=</span> <span style="color: #000099;">SUBSTRING</span><span style="color: #FF00FF;">&#40;</span>input<span style="color: #000033;">,</span><span style="color: #008080;">2</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
&nbsp;
			<span style="color: #990099; font-weight: bold;">BEGIN</span>
				<span style="color: #990099; font-weight: bold;">DECLARE</span> tempval <span style="color: #999900; font-weight: bold;">TINYINT</span> <span style="color: #FF9900; font-weight: bold;">UNSIGNED</span><span style="color: #000033;">;</span>
				<span style="color: #990099; font-weight: bold;">DECLARE</span> error <span style="color: #999900; font-weight: bold;">TINYINT</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
				<span style="color: #990099; font-weight: bold;">DECLARE</span> base64_getval CURSOR FOR <span style="color: #990099; font-weight: bold;">SELECT</span> val <span style="color: #990099; font-weight: bold;">FROM</span> base64_data <span style="color: #990099; font-weight: bold;">WHERE</span> c <span style="color: #CC0099;">=</span> first_char<span style="color: #000033;">;</span>
				<span style="color: #990099; font-weight: bold;">DECLARE</span> CONTINUE <span style="color: #990099; font-weight: bold;">HANDLER</span> FOR SQLSTATE <span style="color: #008000;">'02000'</span> <span style="color: #990099; font-weight: bold;">SET</span> error <span style="color: #CC0099;">=</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
&nbsp;
				OPEN base64_getval<span style="color: #000033;">;</span>
				FETCH base64_getval <span style="color: #990099; font-weight: bold;">INTO</span> tempval<span style="color: #000033;">;</span>
				CLOSE base64_getval<span style="color: #000033;">;</span>
&nbsp;
				<span style="color: #009900;">IF</span> error <span style="color: #009900;">THEN</span>
					ITERATE each_input_char<span style="color: #000033;">;</span>
				<span style="color: #009900;">END</span> <span style="color: #009900;">IF</span><span style="color: #000033;">;</span>
&nbsp;
				<span style="color: #990099; font-weight: bold;">SET</span> accum_value <span style="color: #CC0099;">=</span> <span style="color: #FF00FF;">&#40;</span>accum_value <span style="color: #CC0099;">&lt;&lt;</span> <span style="color: #008080;">6</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">+</span> tempval<span style="color: #000033;">;</span>
			<span style="color: #009900;">END</span><span style="color: #000033;">;</span>
&nbsp;
			<span style="color: #990099; font-weight: bold;">SET</span> in_count <span style="color: #CC0099;">=</span> in_count <span style="color: #CC0099;">+</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
&nbsp;
			<span style="color: #009900;">IF</span> first_char <span style="color: #CC0099;">=</span> <span style="color: #008000;">'='</span> <span style="color: #009900;">THEN</span>
				<span style="color: #990099; font-weight: bold;">SET</span> done <span style="color: #CC0099;">=</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
				<span style="color: #990099; font-weight: bold;">SET</span> out_count <span style="color: #CC0099;">=</span> out_count <span style="color: #CC0099;">-</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
			<span style="color: #009900;">END</span> <span style="color: #009900;">IF</span><span style="color: #000033;">;</span>
		<span style="color: #009900;">END</span><span style="color: #000033;">;</span> <span style="color: #009900;">END</span> WHILE<span style="color: #000033;">;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">-- We've now accumulated 24 bits; deaccumulate into bytes</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">-- We have to work from the left, so use the third byte position and shift left</span>
		WHILE out_count <span style="color: #CC0099;">&gt;</span> <span style="color: #008080;">0</span> <span style="color: #990099; font-weight: bold;">DO</span> <span style="color: #990099; font-weight: bold;">BEGIN</span>
			<span style="color: #990099; font-weight: bold;">SET</span> ret <span style="color: #CC0099;">=</span> <span style="color: #000099;">CONCAT</span><span style="color: #FF00FF;">&#40;</span>ret<span style="color: #000033;">,</span><span style="color: #000099;">CHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #FF00FF;">&#40;</span>accum_value <span style="color: #CC0099;">&amp;</span> <span style="color: #008080;">0xff0000</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">&gt;&gt;</span> <span style="color: #008080;">16</span><span style="color: #FF00FF;">&#41;</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
			<span style="color: #990099; font-weight: bold;">SET</span> out_count <span style="color: #CC0099;">=</span> out_count <span style="color: #CC0099;">-</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
			<span style="color: #990099; font-weight: bold;">SET</span> accum_value <span style="color: #CC0099;">=</span> <span style="color: #FF00FF;">&#40;</span>accum_value <span style="color: #CC0099;">&lt;&lt;</span> <span style="color: #008080;">8</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">&amp;</span> <span style="color: #008080;">0xffffff</span><span style="color: #000033;">;</span>
		<span style="color: #009900;">END</span><span style="color: #000033;">;</span> <span style="color: #009900;">END</span> WHILE<span style="color: #000033;">;</span>
&nbsp;
	<span style="color: #009900;">END</span><span style="color: #000033;">;</span> <span style="color: #009900;">END</span> WHILE<span style="color: #000033;">;</span>
&nbsp;
	RETURN ret<span style="color: #000033;">;</span>
<span style="color: #009900;">END</span> <span style="color: #CC0099;">|</span>
&nbsp;
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #990099; font-weight: bold;">FUNCTION</span> <span style="color: #009900;">IF</span> <span style="color: #990099; font-weight: bold;">EXISTS</span> BASE64_ENCODE <span style="color: #CC0099;">|</span>
<span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">FUNCTION</span> BASE64_ENCODE <span style="color: #FF00FF;">&#40;</span>input <span style="color: #999900; font-weight: bold;">BLOB</span><span style="color: #FF00FF;">&#41;</span>
	<span style="color: #990099; font-weight: bold;">RETURNS</span> <span style="color: #999900; font-weight: bold;">BLOB</span>
	<span style="color: #990099; font-weight: bold;">CONTAINS SQL</span>
	<span style="color: #990099; font-weight: bold;">DETERMINISTIC</span>
	<span style="color: #990099; font-weight: bold;">SQL SECURITY</span> <span style="color: #990099; font-weight: bold;">INVOKER</span>
<span style="color: #990099; font-weight: bold;">BEGIN</span>
	<span style="color: #990099; font-weight: bold;">DECLARE</span> ret <span style="color: #999900; font-weight: bold;">BLOB</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008000;">''</span><span style="color: #000033;">;</span>
	<span style="color: #990099; font-weight: bold;">DECLARE</span> done <span style="color: #999900; font-weight: bold;">TINYINT</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
&nbsp;
	<span style="color: #009900;">IF</span> input <span style="color: #CC0099; font-weight: bold;">IS</span> <span style="color: #9900FF; font-weight: bold;">NULL</span> <span style="color: #009900;">THEN</span>
		RETURN <span style="color: #9900FF; font-weight: bold;">NULL</span><span style="color: #000033;">;</span>
	<span style="color: #009900;">END</span> <span style="color: #009900;">IF</span><span style="color: #000033;">;</span>
&nbsp;
each_block:
	WHILE <span style="color: #CC0099; font-weight: bold;">NOT</span> done <span style="color: #990099; font-weight: bold;">DO</span> <span style="color: #990099; font-weight: bold;">BEGIN</span>
		<span style="color: #990099; font-weight: bold;">DECLARE</span> accum_value <span style="color: #999900; font-weight: bold;">BIGINT</span> <span style="color: #FF9900; font-weight: bold;">UNSIGNED</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
		<span style="color: #990099; font-weight: bold;">DECLARE</span> in_count <span style="color: #999900; font-weight: bold;">TINYINT</span> <span style="color: #990099; font-weight: bold;">DEFAULT</span> <span style="color: #008080;">0</span><span style="color: #000033;">;</span>
		<span style="color: #990099; font-weight: bold;">DECLARE</span> out_count <span style="color: #999900; font-weight: bold;">TINYINT</span><span style="color: #000033;">;</span>
&nbsp;
each_input_char:
		WHILE in_count <span style="color: #CC0099;">&lt;</span> <span style="color: #008080;">3</span> <span style="color: #990099; font-weight: bold;">DO</span> <span style="color: #990099; font-weight: bold;">BEGIN</span>
			<span style="color: #990099; font-weight: bold;">DECLARE</span> first_char <span style="color: #000099;">CHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
&nbsp;
			<span style="color: #009900;">IF</span> <span style="color: #000099;">LENGTH</span><span style="color: #FF00FF;">&#40;</span>input<span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">=</span> <span style="color: #008080;">0</span> <span style="color: #009900;">THEN</span>
				<span style="color: #990099; font-weight: bold;">SET</span> done <span style="color: #CC0099;">=</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
				<span style="color: #990099; font-weight: bold;">SET</span> accum_value <span style="color: #CC0099;">=</span> accum_value <span style="color: #CC0099;">&lt;&lt;</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">8</span> <span style="color: #CC0099;">*</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">3</span> <span style="color: #CC0099;">-</span> in_count<span style="color: #FF00FF;">&#41;</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
				LEAVE each_input_char<span style="color: #000033;">;</span>
			<span style="color: #009900;">END</span> <span style="color: #009900;">IF</span><span style="color: #000033;">;</span>
&nbsp;
			<span style="color: #990099; font-weight: bold;">SET</span> first_char <span style="color: #CC0099;">=</span> <span style="color: #000099;">SUBSTRING</span><span style="color: #FF00FF;">&#40;</span>input<span style="color: #000033;">,</span><span style="color: #008080;">1</span><span style="color: #000033;">,</span><span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
			<span style="color: #990099; font-weight: bold;">SET</span> input <span style="color: #CC0099;">=</span> <span style="color: #000099;">SUBSTRING</span><span style="color: #FF00FF;">&#40;</span>input<span style="color: #000033;">,</span><span style="color: #008080;">2</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
&nbsp;
			<span style="color: #990099; font-weight: bold;">SET</span> accum_value <span style="color: #CC0099;">=</span> <span style="color: #FF00FF;">&#40;</span>accum_value <span style="color: #CC0099;">&lt;&lt;</span> <span style="color: #008080;">8</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #CC0099;">+</span> <span style="color: #000099;">ASCII</span><span style="color: #FF00FF;">&#40;</span>first_char<span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
&nbsp;
			<span style="color: #990099; font-weight: bold;">SET</span> in_count <span style="color: #CC0099;">=</span> in_count <span style="color: #CC0099;">+</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
		<span style="color: #009900;">END</span><span style="color: #000033;">;</span> <span style="color: #009900;">END</span> WHILE<span style="color: #000033;">;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">-- We've now accumulated 24 bits; deaccumulate into base64 characters</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">-- We have to work from the left, so use the third byte position and shift left</span>
		<span style="color: #009900;">CASE</span>
			<span style="color: #009900;">WHEN</span> in_count <span style="color: #CC0099;">=</span> <span style="color: #008080;">3</span> <span style="color: #009900;">THEN</span> <span style="color: #990099; font-weight: bold;">SET</span> out_count <span style="color: #CC0099;">=</span> <span style="color: #008080;">4</span><span style="color: #000033;">;</span>
			<span style="color: #009900;">WHEN</span> in_count <span style="color: #CC0099;">=</span> <span style="color: #008080;">2</span> <span style="color: #009900;">THEN</span> <span style="color: #990099; font-weight: bold;">SET</span> out_count <span style="color: #CC0099;">=</span> <span style="color: #008080;">3</span><span style="color: #000033;">;</span>
			<span style="color: #009900;">WHEN</span> in_count <span style="color: #CC0099;">=</span> <span style="color: #008080;">1</span> <span style="color: #009900;">THEN</span> <span style="color: #990099; font-weight: bold;">SET</span> out_count <span style="color: #CC0099;">=</span> <span style="color: #008080;">2</span><span style="color: #000033;">;</span>
			<span style="color: #009900;">ELSE</span> RETURN ret<span style="color: #000033;">;</span>
		<span style="color: #009900;">END</span> <span style="color: #009900;">CASE</span><span style="color: #000033;">;</span>
&nbsp;
		WHILE out_count <span style="color: #CC0099;">&gt;</span> <span style="color: #008080;">0</span> <span style="color: #990099; font-weight: bold;">DO</span> <span style="color: #990099; font-weight: bold;">BEGIN</span>
			<span style="color: #990099; font-weight: bold;">BEGIN</span>
				<span style="color: #990099; font-weight: bold;">DECLARE</span> out_char <span style="color: #000099;">CHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
				<span style="color: #990099; font-weight: bold;">DECLARE</span> base64_getval CURSOR FOR <span style="color: #990099; font-weight: bold;">SELECT</span> c <span style="color: #990099; font-weight: bold;">FROM</span> base64_data <span style="color: #990099; font-weight: bold;">WHERE</span> val <span style="color: #CC0099;">=</span> <span style="color: #FF00FF;">&#40;</span>accum_value <span style="color: #CC0099;">&gt;&gt;</span> <span style="color: #008080;">18</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
&nbsp;
				OPEN base64_getval<span style="color: #000033;">;</span>
				FETCH base64_getval <span style="color: #990099; font-weight: bold;">INTO</span> out_char<span style="color: #000033;">;</span>
				CLOSE base64_getval<span style="color: #000033;">;</span>
&nbsp;
				<span style="color: #990099; font-weight: bold;">SET</span> ret <span style="color: #CC0099;">=</span> <span style="color: #000099;">CONCAT</span><span style="color: #FF00FF;">&#40;</span>ret<span style="color: #000033;">,</span>out_char<span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
				<span style="color: #990099; font-weight: bold;">SET</span> out_count <span style="color: #CC0099;">=</span> out_count <span style="color: #CC0099;">-</span> <span style="color: #008080;">1</span><span style="color: #000033;">;</span>
				<span style="color: #990099; font-weight: bold;">SET</span> accum_value <span style="color: #CC0099;">=</span> accum_value <span style="color: #CC0099;">&lt;&lt;</span> <span style="color: #008080;">6</span> <span style="color: #CC0099;">&amp;</span> <span style="color: #008080;">0xffffff</span><span style="color: #000033;">;</span>
			<span style="color: #009900;">END</span><span style="color: #000033;">;</span>
		<span style="color: #009900;">END</span><span style="color: #000033;">;</span> <span style="color: #009900;">END</span> WHILE<span style="color: #000033;">;</span>
&nbsp;
		<span style="color: #009900;">CASE</span>
			<span style="color: #009900;">WHEN</span> in_count <span style="color: #CC0099;">=</span> <span style="color: #008080;">2</span> <span style="color: #009900;">THEN</span> <span style="color: #990099; font-weight: bold;">SET</span> ret <span style="color: #CC0099;">=</span> <span style="color: #000099;">CONCAT</span><span style="color: #FF00FF;">&#40;</span>ret<span style="color: #000033;">,</span><span style="color: #008000;">'='</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
			<span style="color: #009900;">WHEN</span> in_count <span style="color: #CC0099;">=</span> <span style="color: #008080;">1</span> <span style="color: #009900;">THEN</span> <span style="color: #990099; font-weight: bold;">SET</span> ret <span style="color: #CC0099;">=</span> <span style="color: #000099;">CONCAT</span><span style="color: #FF00FF;">&#40;</span>ret<span style="color: #000033;">,</span><span style="color: #008000;">'=='</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
			<span style="color: #009900;">ELSE</span> <span style="color: #990099; font-weight: bold;">BEGIN</span> <span style="color: #009900;">END</span><span style="color: #000033;">;</span>
		<span style="color: #009900;">END</span> <span style="color: #009900;">CASE</span><span style="color: #000033;">;</span>
&nbsp;
	<span style="color: #009900;">END</span><span style="color: #000033;">;</span> <span style="color: #009900;">END</span> WHILE<span style="color: #000033;">;</span>
&nbsp;
	RETURN ret<span style="color: #000033;">;</span>
<span style="color: #009900;">END</span> <span style="color: #CC0099;">|</span></pre></div></div>

<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F03%2F19%2Fbase64_encodedecode-in-mysql%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/03/19/base64_encodedecode-in-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Funzione strip_tags in Mysql</title>
		<link>http://devnull.fuoriradio.com/2010/02/06/funzione-strip_tags-in-mysql/</link>
		<comments>http://devnull.fuoriradio.com/2010/02/06/funzione-strip_tags-in-mysql/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 15:43:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=238</guid>
		<description><![CDATA[Avevo necessità di cercare in una tabella delle frasi formattate in html, e temevo di dover scaricare la tabella in questione e poi farne il parsing, quando invece ho trovato la soluzione in MySql: delimiter &#124;&#124; &#160; DROP FUNCTION IF EXISTS strip_tags&#124;&#124; CREATE FUNCTION strip_tags&#40; x longtext&#41; RETURNS longtext LANGUAGE SQL NOT DETERMINISTIC READS SQL [...]]]></description>
			<content:encoded><![CDATA[<p>Avevo necessità di cercare in una tabella delle frasi formattate in html, e temevo di dover scaricare la tabella in questione e poi farne il parsing, quando invece ho trovato la soluzione in MySql:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">delimiter <span style="color: #CC0099;">||</span>
&nbsp;
<span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #990099; font-weight: bold;">FUNCTION</span> <span style="color: #009900;">IF</span> <span style="color: #990099; font-weight: bold;">EXISTS</span> strip_tags<span style="color: #CC0099;">||</span>
<span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">FUNCTION</span> strip_tags<span style="color: #FF00FF;">&#40;</span> <span style="color: #00CC00;">x</span> <span style="color: #999900; font-weight: bold;">longtext</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">RETURNS</span> <span style="color: #999900; font-weight: bold;">longtext</span>
<span style="color: #990099; font-weight: bold;">LANGUAGE SQL</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #990099; font-weight: bold;">DETERMINISTIC</span> <span style="color: #990099; font-weight: bold;">READS SQL DATA</span>
<span style="color: #990099; font-weight: bold;">BEGIN</span>
<span style="color: #990099; font-weight: bold;">DECLARE</span> sstart <span style="color: #999900; font-weight: bold;">INT</span> <span style="color: #FF9900; font-weight: bold;">UNSIGNED</span><span style="color: #000033;">;</span>
<span style="color: #990099; font-weight: bold;">DECLARE</span> ends <span style="color: #999900; font-weight: bold;">INT</span> <span style="color: #FF9900; font-weight: bold;">UNSIGNED</span><span style="color: #000033;">;</span>
<span style="color: #990099; font-weight: bold;">SET</span> sstart <span style="color: #CC0099;">=</span> <span style="color: #000099;">LOCATE</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'&lt;'</span><span style="color: #000033;">,</span> <span style="color: #00CC00;">x</span><span style="color: #000033;">,</span> <span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
<span style="color: #000099;">REPEAT</span>
<span style="color: #990099; font-weight: bold;">SET</span> ends <span style="color: #CC0099;">=</span> <span style="color: #000099;">LOCATE</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'&gt;'</span><span style="color: #000033;">,</span> <span style="color: #00CC00;">x</span><span style="color: #000033;">,</span> sstart<span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
<span style="color: #990099; font-weight: bold;">SET</span> <span style="color: #00CC00;">x</span> <span style="color: #CC0099;">=</span> <span style="color: #000099;">CONCAT</span><span style="color: #FF00FF;">&#40;</span><span style="color: #000099;">SUBSTRING</span><span style="color: #FF00FF;">&#40;</span> <span style="color: #00CC00;">x</span><span style="color: #000033;">,</span> <span style="color: #008080;">1</span> <span style="color: #000033;">,</span>sstart <span style="color: #CC0099;">-</span><span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #000033;">,</span><span style="color: #000099;">SUBSTRING</span><span style="color: #FF00FF;">&#40;</span><span style="color: #00CC00;">x</span><span style="color: #000033;">,</span> ends <span style="color: #CC0099;">+</span><span style="color: #008080;">1</span> <span style="color: #FF00FF;">&#41;</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #000033;">;</span>
<span style="color: #990099; font-weight: bold;">SET</span> sstart <span style="color: #CC0099;">=</span> <span style="color: #000099;">LOCATE</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'&lt;'</span><span style="color: #000033;">,</span> <span style="color: #00CC00;">x</span><span style="color: #000033;">,</span> <span style="color: #008080;">1</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
UNTIL sstart <span style="color: #CC0099;">&lt;</span> <span style="color: #008080;">1</span> <span style="color: #009900;">END</span> <span style="color: #000099;">REPEAT</span><span style="color: #000033;">;</span>
return <span style="color: #00CC00;">x</span><span style="color: #000033;">;</span>
<span style="color: #009900;">END</span><span style="color: #000033;">;</span>
<span style="color: #CC0099;">||</span>
delimiter <span style="color: #000033;">;</span></pre></div></div>

<p>Ed ecco un esempio d&#8217;uso:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> strip_tags<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'&lt;a href=&quot;HelloWorld.html&quot;&gt;&lt;B&gt;Hello, world!&lt;/B&gt;&lt;/a&gt;'</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">as</span> strip_tags<span style="color: #000033;">;</span></pre></div></div>

<p>Ringrazio l&#8217;autore della funzione Stephen Gornick, per l&#8217;aiuto.<br />
Ovviamente meglio non usarla su tabelle con milioni di record <img src='http://devnull.fuoriradio.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F02%2F06%2Ffunzione-strip_tags-in-mysql%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/02/06/funzione-strip_tags-in-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Codepad</title>
		<link>http://devnull.fuoriradio.com/2010/01/26/codepad/</link>
		<comments>http://devnull.fuoriradio.com/2010/01/26/codepad/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 17:09:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/2010/01/26/codepad/</guid>
		<description><![CDATA[Codepad.org è uno dei tanti servizi di condivisione di piccoli frammenti di codice esistenti, interessante la funzione che consente di eseguire il codice dello snippet e la gestione di numerosi linguaggi di programmazione.]]></description>
			<content:encoded><![CDATA[<p><img style="float:left; margin: 8px" src="http://snapcasa.com/get.aspx?code=9019&size=l&url=http%3A%2F%2Fcodepad.org"/ > <a href="http://codepad.org">Codepad.org</a> è uno dei tanti servizi di condivisione di piccoli frammenti di codice esistenti, interessante la funzione che consente di eseguire il codice dello snippet e la gestione di numerosi linguaggi di programmazione.</p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F01%2F26%2Fcodepad%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/01/26/codepad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

