<?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>内置函数 &#8211; LPC影子技术分享</title>
	<atom:link href="https://www.mudbest.com/tag/%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.mudbest.com</link>
	<description>行影不离,忘之却步.</description>
	<lastBuildDate>Fri, 21 Dec 2012 04:55:19 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.1</generator>
	<item>
		<title>Mysql内部的一些函数介绍</title>
		<link>https://www.mudbest.com/mysql%e5%86%85%e9%83%a8%e7%9a%84%e4%b8%80%e4%ba%9b%e5%87%bd%e6%95%b0%e4%bb%8b%e7%bb%8d/</link>
		
		<dc:creator><![CDATA[hkshadow]]></dc:creator>
		<pubDate>Fri, 21 Dec 2012 04:55:19 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<category><![CDATA[分享]]></category>
		<category><![CDATA[mysql函数]]></category>
		<category><![CDATA[内置函数]]></category>
		<guid isPermaLink="false">http://www.mudbest.com/?p=1740</guid>

					<description><![CDATA[算数运算子 +, -, *, / 除于 0 会等于 NULL。 比较运算子 任何东西跟 NULL 比较会等于  ... <a title="Mysql内部的一些函数介绍" class="read-more" href="https://www.mudbest.com/mysql%e5%86%85%e9%83%a8%e7%9a%84%e4%b8%80%e4%ba%9b%e5%87%bd%e6%95%b0%e4%bb%8b%e7%bb%8d/" aria-label="阅读 Mysql内部的一些函数介绍">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p><strong>算数运算子</strong><br />
+, -, *, /<br />
除于 0 会等于 NULL。<br />
比较运算子<br />
任何东西跟 NULL 比较会等于 NULL。<br />
比较字符串通常不需要注意大小写，如果要比较大小写，用 BINARY 关键词。<br />
<span id="more-1740"></span><br />
<strong>程序代码:</strong></p>
<pre class="brush: sql; title: ; notranslate">
SELECT *
FROM department
WHERE name = BINARY \'marketing\';
</pre>
<p><strong>代码:</strong></p>
<pre class="brush: sql; title: ; notranslate">
=      相等

!= 或 &lt;&gt;    不相等

&lt;      小于

&lt;=     小或等于

&gt;      大于

&gt;=     大或等于

n BETWEEN

min AND max    测试范围

n IN (set)    set 可以是一系列的数值或子查询。

&lt;=&gt;    可以比较 NULL，如果比较两个 NULL 会传回 1。

n IS NULL    测试 n 是否 NULL。

ISNULL(n)    测试 n 是否 NULL。
</pre>
<p><strong>逻辑运算子</strong></p>
<p>传回的值有 1 (true), 0 (false, 或 NULL。</p>
<p>任何不是 0 或不是 NULL 的值都是 true。</p>
<p>程序代码:</p>
<p>AND 或 &#038;&#038; n &#038;&#038; m       和</p>
<p>true &#038;&#038; true = true</p>
<p>false &#038;&#038; anything = false</p>
<p>其它会等于 NULL</p>
<p>OR 或 ||   n || m       或</p>
<p>true || anything = true</p>
<p>NULL || false = NULL</p>
<p>NULL || NULL = NULL</p>
<p>false || false = false</p>
<p>NOT 或 !    NOT n     不是</p>
<p>!true = false</p>
<p>!false = true</p>
<p>!NULL = NULL</p>
<p>XOR    n XOR m      不包含的 OR</p>
<p>true XOR true = false</p>
<p>true XOR false = true</p>
<p>false XOR true = true</p>
<p>NULL XOR n = NULL</p>
<p>n XOR NULL = NULL</p>
<p><strong>控制流向的函式</strong></p>
<p>IF (e1, e2, e3)</p>
<p>如果 e1 是 true，IF 会传回 e2，不然会传回 e3。</p>
<p>CASE value</p>
<p>WHEN [compare-value] THEN result</p>
<p>[WHEN [compare-value] THEN result &#8230;]</p>
<p>[ELSE result]</p>
<p>END</p>
<p>或是</p>
<p>CASE</p>
<p>WHEN [condition] THEN result</p>
<p>[WHEN [condition] THEN result &#8230;]</p>
<p>[ELSE result]</p>
<p>END</p>
<p>程序代码:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT workdate, CASE

WHEN workdate &lt; 2000-01-01 THEN &quot;archived&quot;

WHEN workdate &lt; 2003-01-01 THEN &quot;old&quot;

ELSE &quot;current&quot;

END

FROM assignment;
</pre>
<p><strong>字符串函式</strong></p>
<p>concat(s1, s2, &#8230;) &#8211; 连接字符串 s1 和 s2&#8230;</p>
<p>conv(n, original_base, new_base) &#8211; 转换数字 n 从本来的 base 到新的 base</p>
<p>length(s) &#8211; 找字符串的长度</p>
<p>load_file(filename) &#8211; 依照字符串传回档案的内容</p>
<p>locate(needle, haystack, position) &#8211; 传回 needle 字符串的开始位置，在 haystack 字符串里，从 position 开始</p>
<p>lower(s) and upper(s) &#8211; 转换 s 到小写或大写</p>
<p>quote(s) &#8211; 跳脱 s 字符串，让它可以安全输入数据库</p>
<p>replace(target, find, replace) &#8211; 传回 target 字符串，将 find 字符串覆盖成 replace 字符串</p>
<p>soundex(s) &#8211; 传回跟 s 类似的 soundex 字符串。soundex 是字符串的发音</p>
<p>substring(s, position, length) &#8211; 传回字符串里的字符串，s 是本来的字符串，position 是开始的位置，length 是传回的字数</p>
<p>trim(s) &#8211; 移除开头跟字尾的空格符。也可以用 rtrim() 或 ltrim()</p>
<p><strong>字符串比较的函式</strong></p>
<p>LIKE &#8211; 利用通配字符来进行比较</p>
<p>RLIKE &#8211; 利用正规表示法来进行比较</p>
<p>STRCMP &#8211; 比较字符串，类似 C 里面的 strcmp()</p>
<p>MATCH &#8211; 进行 full-text 比较</p>
<p>利用通配字符来进行比较</p>
<p>程序代码:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT *

FROM department

WHERE name LIKE \'%research%\';
</pre>
<p>% 会吻合任何字数，包括 0。</p>
<p>_ 会吻合单一字数， _at 会吻合 cat, mat, bat&#8230;</p>
<p>利用正规表示法来进行比较</p>
<p>RLIKE 可以用来吻合正规表示法。</p>
<p>\&#8217;cat\&#8217; 会吻合 \&#8217;catacomb\&#8217; 和 \&#8217;the cat sat on the mat\&#8217;。</p>
<p>如果只要吻合 \&#8217;cat\&#8217;，用 \&#8217;^cat$\&#8217;。</p>
<p>^ 表示在吻合的字符串开头是 \&#8217;cat\&#8217;。</p>
<p>$ 表示在吻合的字符串最后是 \&#8217;cat\&#8217;。</p>
<p>. 可以用来代表通配字符，\&#8217;.at\&#8217; 会吻合 \&#8217;cat\&#8217;, \&#8217;bat\&#8217;, \&#8217;mat\&#8217;。</p>
<p>* 表示字符可以出现零或多次，\&#8217;n*\&#8217; 会吻合 \&#8217;\&#8217;, \&#8217;nn\&#8217;, \&#8217;nnn\&#8217;。</p>
<p>() 会归类字符，\'(cat)*\&#8217; 会吻合 \&#8217;\&#8217;, \&#8217;cat\&#8217;, \&#8217;catcat\&#8217;, \&#8217;catcatcat\&#8217;。</p>
<p>.* 会吻合任何字或字符串。</p>
<p>+ 表示在他之后的字或字符串会重复一或多次。</p>
<p>? 表示吻合一或零次。</p>
<p>列出特定的范围，\'(cat)(2,4)\&#8217; 会吻合 \&#8217;catcat\&#8217;, \&#8217;catcatcat\&#8217;, 和 \&#8217;catcatcatcat\&#8217;。</p>
<p>[] 可以列出一系列的文字，\'[a-z]\&#8217; 会吻合任何字母，\'[a-z]*\&#8217; 会吻合任何数量的字母。</p>
<p>文字类别，[[:alnum:]] 会吻合任何字母和数字的文字。</p>
<p>程序代码:</p>
<p>SELECT *</p>
<p>FROM department</p>
<p>WHERE name RLIKE \&#8217;an\&#8217;;</p>
<p>这会吻合全部有包括 \&#8217;an\&#8217; 的部门。</p>
<p>用 STRCMP() 来比较字符串</p>
<p>STRCMP(s1, s2)</p>
<p>如果字符串相同会传回 0，-1 如果 s1 比 s2 小 (s1 比 s2 早出现)。</p>
<p>1 如果 s1 比 s2 大 (s1 比 s2 晚出现)。</p>
<p><strong>程序代码:</strong></p>
<pre class="brush: sql; title: ; notranslate">
SELECT STRCMP(\'cat\', \'cat\');
</pre>
<p>// 传回 0</p>
<pre class="brush: sql; title: ; notranslate">
SELECT STRCMP(\'cat\', \'dog\');
</pre>
<p>// 传回 -1</p>
<pre class="brush: sql; title: ; notranslate">
SELECT STRCMP(\'cat\', \'ant\');
</pre>
<p>// 传回 1</p>
<p><strong>数字函式</strong></p>
<p>abs(n) 传回 n 的正数</p>
<p>ceiling(n) n rounded up to the nearest integer</p>
<p>floor(n) n rounded down to the nearest integer</p>
<p>mod(n,m) 和 div 这两个函式会将 n 除于 m。div 传回商数，mod() 会传回剩余数。</p>
<p>power(n,m) n to the power of m</p>
<p>rand(n) 传回 0 到 1 的随意数。n 可以不提供，如果提供会用来产生随意数。</p>
<p>相同的 n 会产生相同的随意数。</p>
<p>round(n[,d]) n rounded to the nearest integer. if supply d, n will be rounded to d decimal places.</p>
<p>sqrt(n) 传回 n 的平方</p>
<p>mod() 可以是 mod(9,2) 或 9 mod 2 或 9 % 2。</p>
<p>div 只能用 9 div 2。</p>
<p><strong>程序代码:</strong></p>
<pre class="brush: sql; title: ; notranslate">
SELECT 9 mod 2;
</pre>
<p>// 传回 1</p>
<pre class="brush: sql; title: ; notranslate">
SELECT 9 div 2;
</pre>
<p>// 传回 4</p>
<p><strong>日期和时间函式</strong></p>
<p>adddate(date, INTERVAL n type) 和 subdate(date, INTERVAL n type)</p>
<p>这些函式可以用来增加和减少日期。从 date 的日期开始计算，然后增加或减少 INTERVAL 后的日期范围。</p>
<p>你必须提供 n 和他的类型。类型可以是 SECOND, MINUTE, HOUR, DAY, MONTH, YEAR, MINUTE:SECOND (m:s),</p>
<p>HOUR:MINUTE (h:m), DAY_HOUR(d h), YEAR_MONTH (y-m), HOUR_SECOND (h:m:s), DAY_MINUTE (d h:m),</p>
<p>DAY_SECOND (d h:m:s)。</p>
<p>curdate(), curtime(), now()</p>
<p>这些函式会传回目前的日期，目前的时间，还有时间和日期。</p>
<p>date_format(date, format) 和 time_format(time, format)</p>
<p>这些可以用来改变日期和时间的格式。</p>
<p>你必须提供格式的字符串，譬如说 date_format(workdate, \&#8217;%W %D of %M, %Y\&#8217;)，</p>
<p>这会给你 \&#8217;Monday 16th of June, 2003)。</p>
<p>全部可用的格式请看 MySQL 的手册。</p>
<p>dayname(date)</p>
<p>传回日期的名称，例如 Monday。</p>
<p>extract(type FROM date)</p>
<p>传回 date 的日期，譬如说 YEAR，他就会传回那个日期的年数。</p>
<p>函式可用的类型跟 adddate() 和 subdate() 的类型相同。</p>
<p>unix_timestamp([date])</p>
<p>传回目前的 Unix 时间。如果跟 date 一起使用，传回的日期会从 date 的日期开始计算。</p>
<p>范例：</p>
<p><strong>程序代码:</strong></p>
<pre class="brush: sql; title: ; notranslate">
SELECT adddate(&quot;1999-01-01&quot;, INTERVAL &quot;1-6&quot; YEAR_MONTH);
</pre>
<p>// 传回 2000-07-01</p>
<pre class="brush: sql; title: ; notranslate">
SELECT unix_timestamp(adddate(&quot;1999-01-01&quot;, INTERVAL &quot;1-6&quot; YEAR_MONTH);
</pre>
<p>// 传回 962373600</p>
<p>可以用 PHP 的 date() 函式来将 Unix 的时间格式化。</p>
<p><strong>cast 函式</strong></p>
<p>cast 可以用来改变类型，用 cast() 和 convert() 函式。</p>
<p>两个函式相同，但是不同的语法构造。</p>
<p>cast(expression AS type)</p>
<p>convert(expression, type)</p>
<p>cast() 是依照 ANSI 的规格，convert() 是依照 ODBC 的规格。</p>
<p>类型可以是 BINARY, CHAR, DATE, DATETIME, SIGNED (INTEGER), 和 UNSIGNED (INTEGER)。</p>
<p>通常 MySQL 会自动帮你改变类型。</p>
<p><strong>其它函式</strong></p>
<p>benchmark(count, expression)</p>
<p>这个函式是用来测试查询的速度，只会传回 0 值。</p>
<p>encrypt(s[,salt])</p>
<p>将 s 加密用 Unix 的加密系统。salt 字符串是两个字符的字符串，可以不用。</p>
<p>如果没有 crypt 功能，像在 Windows 系统，这个函式会传回 NULL。</p>
<p>found_rows()</p>
<p>传回字段的数量，如果没有用 LIMIT。</p>
<p>只有在 SELECT 里使用 SQL_CALC_FOUND_ROWS 才能用这个函式。</p>
<p>last_insert_id()</p>
<p>传回最后产生的 AUTO_INCREMENT 值。</p>
<p>md5(s)</p>
<p>传回 128bit MD5 的加密字符串。</p>
<p>password(s)</p>
<p>计算 s 的密码，不建议用这个函式来储存密码。</p>
<p>用于 GROUP BY 的函式</p>
<p>这些还是专门为了 GROUP BY 而写的。</p>
<p>avg(column) &#8211; 传回字段的平均值</p>
<p>count(column) &#8211; 传回字段的数量</p>
<p>min(column) &#8211; 传回字段的最小值</p>
<p>max(column) &#8211; 传回字段的最大值</p>
<p>std(column) &#8211; 传回字段的标准差</p>
<p>sum(column) &#8211; 传回字段的总数 </p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
