<?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>Mikael Brevik &#187; rlike</title>
	<atom:link href="http://mikaelb.net/emneord/rlike/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikaelb.net</link>
	<description>Bloggen</description>
	<lastBuildDate>Mon, 07 Sep 2009 20:11:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Søking i en MyISAM-database</title>
		<link>http://mikaelb.net/2008/05/soking-i-en-myisam-database/</link>
		<comments>http://mikaelb.net/2008/05/soking-i-en-myisam-database/#comments</comments>
		<pubDate>Sun, 04 May 2008 16:41:52 +0000</pubDate>
		<dc:creator>Mikael Brevik</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[against]]></category>
		<category><![CDATA[fulltext]]></category>
		<category><![CDATA[like]]></category>
		<category><![CDATA[match]]></category>
		<category><![CDATA[myisam]]></category>
		<category><![CDATA[rlike]]></category>
		<category><![CDATA[søk]]></category>

		<guid isPermaLink="false">http://mikaelb.net/blogg/?p=13</guid>
		<description><![CDATA[Topp notis: FULLTEXT-metoden som er brukt i denne artikkelen støttes ikke av database-typen InnoDB, men MyISAM.
Det er flere metoder du kan bruke når du skal søke i en MySQL database. De vanligste metodene er å bruke LIKE() eller MATCH(). Her vil jeg forklare en bruk av MATCH, og så vidt nevne LIKE/RLIKE. MATCH bruker vi [...]]]></description>
			<content:encoded><![CDATA[<p><em>Topp notis</em>: FULLTEXT-metoden som er brukt i denne artikkelen støttes ikke av database-typen InnoDB, men MyISAM.</p>
<p>Det er flere metoder du kan bruke når du skal søke i en MySQL database. De vanligste metodene er å bruke LIKE() eller MATCH(). Her vil jeg forklare en bruk av MATCH, og så vidt nevne LIKE/RLIKE. MATCH bruker vi i noe som kalles <code>FULLTEXT</code> search. Det betyr at du må ha en <code>FULLTEXT</code>-index i tabellen din.</p>
<p>Dette kan du gjøre eks via CREATE eller ALTER. Når du lager en ny tabell kan du f.eks gjøre slik:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> <span style="color: #990099; font-weight: bold;">table</span> <span style="color: #FF00FF;">&#40;</span>
   news_id <span style="color: #999900; font-weight: bold;">INT</span> <span style="color: #FF9900; font-weight: bold;">UNSIGNED</span> <span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span> <span style="color: #990099; font-weight: bold;">PRIMARY KEY</span><span style="color: #000033;">,</span>
   my_title <span style="color: #999900; font-weight: bold;">VARCHAR</span><span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">200</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span>
   my_text <span style="color: #999900; font-weight: bold;">TEXT</span><span style="color: #000033;">,</span>
   <span style="color: #FF9900; font-weight: bold;">FULLTEXT</span> <span style="color: #FF00FF;">&#40;</span>my_title<span style="color: #000033;">,</span> my_text<span style="color: #FF00FF;">&#41;</span>
<span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></pre></div></div>

<p><code>FULLTEXT</code> skal asignes til de feltene som du vil MATCH skal fungere på.</p>
<h3>Så hvordan søker vi?</h3>
<p>Si at jeg har mye innhold i tabellen ovenfor som handler om elefanter og blåbær.</p>
<p>Så skal jeg plukke ut de artiklene som inneholder nettopp ordene &#8220;elefant&#8221; og &#8220;blåbær&#8221;. Da gjør jeg slik:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> id<span style="color: #000033;">,</span> my_title<span style="color: #000033;">,</span>
   <span style="color: #990099; font-weight: bold;">MATCH</span><span style="color: #FF00FF;">&#40;</span>my_title<span style="color: #000033;">,</span> my_text<span style="color: #FF00FF;">&#41;</span>
   AGAINST<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'elefant blåbær'</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">as</span> relevance
<span style="color: #990099; font-weight: bold;">FROM</span> <span style="color: #990099; font-weight: bold;">table</span>
  <span style="color: #990099; font-weight: bold;">WHERE</span>
     <span style="color: #990099; font-weight: bold;">MATCH</span><span style="color: #FF00FF;">&#40;</span>my_title<span style="color: #000033;">,</span> my_text<span style="color: #FF00FF;">&#41;</span>
     AGAINST<span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'elefant blåbær'</span><span style="color: #FF00FF;">&#41;</span>
<span style="color: #990099; font-weight: bold;">ORDER BY</span> relevance <span style="color: #990099; font-weight: bold;">DESC</span></pre></div></div>

<p>Her rekner du ut rel som relevanse over hvor mye det stemmer, og vi sorterer etter mest relevante søk, fra størst til minst. Vi velger ut ID, tittel og relevanse.</p>
<p>Det blir ingen videre utgreing av dette, det er selvforklarende.</p>
<h3>Kjapt om LIKE()</h3>
<p>Her kommer det også litt kjapt om hvordan du kan bruke LIKE. Her er det essensielt med wildcardet % for å matche mot resultat.</p>
<p>Her er det korrekt med eksempelet ovenfor:</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> id<span style="color: #000033;">,</span> my_title
<span style="color: #990099; font-weight: bold;">FROM</span> <span style="color: #990099; font-weight: bold;">table</span>
<span style="color: #990099; font-weight: bold;">WHERE</span> my_text <span style="color: #CC0099; font-weight: bold;">LIKE</span> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'<span style="color: #008080; font-weight: bold;">%</span>elefant<span style="color: #008080; font-weight: bold;">%</span>blåbær<span style="color: #008080; font-weight: bold;">%</span>'</span><span style="color: #FF00FF;">&#41;</span>
<span style="color: #CC0099; font-weight: bold;">AND</span> my_text <span style="color: #CC0099; font-weight: bold;">RLIKE</span> <span style="color: #008000;">'[[:&amp;lt; :]]elefant[[:&amp;gt;:]].*[[:&amp;lt; :]]blåbær[[:&amp;gt;:]]'</span></pre></div></div>

<p>&#8230; Eventuelt utvide med å søke i <code>my_title</code> også!</p>
<h4>Redigert &#8211; 06.07.07 02:38:</h4>
<p>Ser jeg har mangel på forklaring av hva RLIKE gjør, som kan forvirre litt. RLIKE fungerer på samme måte som LIKE gjør, bare at det er med <a title="Hvordan lage regulære uttrykk" href="http://mikaelb.net/2007/hvordan-lage-regulaere-uttrykk/">regulære uttrykk</a>. På den måten får du mye større muligheter til hva du skal hente ut, og ikke bare benytte deg av wildcard.</p>
]]></content:encoded>
			<wfw:commentRss>http://mikaelb.net/2008/05/soking-i-en-myisam-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
