<?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>BBProject.net &#187; case sensitive</title>
	<atom:link href="http://www.bbproject.net/tag/case-sensitive/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bbproject.net</link>
	<description>Programowanie, webmastering, informatyka</description>
	<lastBuildDate>Mon, 26 Jul 2010 08:03:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Porównywanie ciągów w SQL z uwzględnieniem wielkości liter</title>
		<link>http://www.bbproject.net/2010/01/porownywanie-ciagow-w-sql-z-uwzglednieniem-wielkosci-liter/</link>
		<comments>http://www.bbproject.net/2010/01/porownywanie-ciagow-w-sql-z-uwzglednieniem-wielkosci-liter/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 08:43:36 +0000</pubDate>
		<dc:creator>M@ster</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[binary]]></category>
		<category><![CDATA[case insensitive]]></category>
		<category><![CDATA[case sensitive]]></category>
		<category><![CDATA[porównywanie napisów]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.bbproject.net/?p=113</guid>
		<description><![CDATA[Czy zdarzyło się Wam wybierać wiersze z bazy MySQL, które różnią się od zadanego warunku wielkością znaków? Zapewne wielu początkujących programistów miało do czynienia z tą sytuacją. Przyczyną tego zjawiska jest ustalona metoda porównywania napisów, która z reguły nie uwzględnia wielkości liter (końcówka „ci” &#8211; case insensitive). Mając przykładowo w bazie danych dwa rekordy gruszka [...]]]></description>
			<content:encoded><![CDATA[<p>Czy zdarzyło się Wam wybierać wiersze z bazy MySQL, które różnią się od zadanego warunku wielkością znaków? Zapewne wielu początkujących programistów miało do czynienia z tą sytuacją. Przyczyną tego zjawiska jest ustalona metoda porównywania napisów, która z reguły nie uwzględnia wielkości liter (końcówka „ci” &#8211; <em>case insensitive</em>).</p>
<p><img class="alignnone size-full wp-image-114" title="utf8_general_ci" src="http://www.bbproject.net/wp-content/uploads/2009/12/utf8_general_ci.png" alt="" width="231" height="62" /></p>
<p>Mając przykładowo w bazie danych dwa rekordy <em>gruszka</em> oraz <em>Gruszka</em>, zapytanie pokroju:</p>
<pre class="brush: sql">SELECT * FROM `test` WHERE `data` = 'Gruszka'
</pre>
<p>&#8230;zwróci nam oba te rekordy. Co jeśli jednak zależy nam na porównaniu uwzględniającym wielkość liter?</p>
<p><span id="more-113"></span>Najprościej zmienić metodą porównywania napisów interesującej nas tabeli na taką z sufiksem „cs” &#8211; <em>case sensitive</em>. Załóżmy jednak że nie jesteśmy leniwi, nie chcemy zmieniać tego parametru, wybrane kodowanie znaków nie dysponuje odmianą <em>case sensitive</em>, lub po prostu chcemy zachować sposób porównywania a jedynie w jednym konkretnym przypadku uwzględnić wielkość liter.</p>
<p>W tej sytuacji musimy posłużyć się operatorem <a href="http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html"><em>BINARY</em></a> przy warunku porównania. Co robi ów magiczne słowo? Wymusza binarne porównywanie ciągów. Litera duża posiada inny zapis binarny niż mała (w końcu jakoś system musi je rozróżniać). W efekcie, nastąpi porównania ciągów z zachowanie wielkości liter.</p>
<pre class="brush: sql">SELECT * FROM `test` WHERE `data` = BINARY 'Gruszka'
</pre>
<p>Powyższe zapytanie zwróci już tylko jeden z naszych dwóch rekordów, ten który oczkujemy &#8211; <em>Gruszka</em>.</p>
<p>Analogicznie możemy zastosować operator <em>BINARY</em> do zapytania typu:</p>
<pre class="brush: sql">SELECT * FROM `test` WHERE `data` LIKE BINARY 'Gru%'</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bbproject.net/2010/01/porownywanie-ciagow-w-sql-z-uwzglednieniem-wielkosci-liter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
