<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>非犬犬</title><link>http://borland.mblogger.cn/shuixin13/</link><description>哈.我是犬犬(心帆).. :-)</description><dc:language>zh-CHS</dc:language><generator>RSS Generated by MBlogger Blogs</generator><item><dc:creator>非犬犬</dc:creator><title>CURL 获取指定IP主机信息</title><link>http://borland.mblogger.cn/shuixin13/posts/34931.aspx</link><pubDate>Fri, 26 Sep 2008 13:14:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/34931.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/34931.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/34931.aspx#feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/34931.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=34931</trackback:ping><description>&lt;p&gt;大型网站一般都会有多台主机，&lt;/p&gt;&lt;p&gt;比如新浪网，通过 NSLOOKUP 就可以看出，它指向了多个IP。&lt;/p&gt;&lt;p&gt;&lt;span class="Code"&gt;Z:\&amp;gt;nslookup &lt;a href="http://www.sina.com.cn/"&gt;www.sina.com.cn&lt;/a&gt; &lt;br/&gt;Server: c.center-dns.jsinfo.net &lt;br/&gt;Address: 61.177.7.1 &lt;br/&gt;Name: newsnj.sina.com.cn &lt;br/&gt;Addresses: 202.102.75.169, 202.102.75.170, 202.102.75.161, 202.102.75.162 202.102.75.163, 202.102.75.164, 202.102.75.165, 202.102.75.166, 202.10 2.75.167 202.102.75.168 &lt;br/&gt;Aliases: www.sina.com.cn, jupiter.sina.com.cn &lt;/span&gt;&lt;/p&gt;&lt;p&gt;使用 curl -I &lt;a href="http://www.sina.com.cn/"&gt;http://www.sina.com.cn/&lt;/a&gt;&amp;nbsp;可以得到 HTTP 头信息，&lt;br/&gt;但是curl获取的主机是从DNS服务器随机取到的，&lt;br/&gt;怎么样才能查看指定IP上的HTTP信息呢？&lt;/p&gt;&lt;p&gt;使用IP访问，并使用 -H 参数添加 HTTP 头&amp;ldquo;Host:www.sina.com.cn&amp;rdquo;，就可以了！&lt;/p&gt;&lt;p&gt;&lt;span class="Code"&gt;D:\&amp;gt;curl -I &lt;a href="http://www.sina.com.cn/"&gt;http://www.sina.com.cn/&lt;/a&gt;&lt;br/&gt;HTTP/1.1 200 OK&lt;br/&gt;Via: 1.0 nanjing75-162.HP08040106.sina.com.cn:80 (squid/2.6.STABLE13), 1.0 TRFW&lt;br/&gt;Connection: Keep-Alive&lt;br/&gt;Proxy-Connection: Keep-Alive&lt;br/&gt;Content-Length: 390160&lt;br/&gt;Expires: Fri, 26 Sep 2008 05:22:11 GMT&lt;br/&gt;Date: Fri, 26 Sep 2008 05:21:11 GMT&lt;br/&gt;Content-Type: text/html&lt;br/&gt;ETag: &amp;quot;5c2d7-457c5a8340d40&amp;quot;&lt;br/&gt;Server: Apache&lt;br/&gt;Last-Modified: Fri, 26 Sep 2008 05:19:09 GMT&lt;br/&gt;Accept-Ranges: bytes&lt;br/&gt;X-Powered-By: mod_xlayout_jh/0.0.1vhs.markIII.remix&lt;br/&gt;Cache-Control: max-age=60&lt;br/&gt;Vary: Accept-Encoding&lt;br/&gt;X-Cache: HIT from nanjing75-162.HP08040106.sina.com.cn&lt;/span&gt;&lt;/p&gt;&lt;p&gt;从 DNS 解析到 202.102.75.162 主机&lt;/p&gt;&lt;p&gt;&lt;span class="Code"&gt;D:\&amp;gt;curl -I -H &amp;quot;Host:www.sina.com.cn&amp;quot; &lt;a href="http://202.102.75.169/"&gt;http://202.102.75.169/&lt;/a&gt;&lt;br/&gt;HTTP/1.1 200 OK&lt;br/&gt;Via: 1.0 nanjing75-169.HP08040113.sina.com.cn:80 (squid/2.6.STABLE13), 1.0 TRFW&lt;br/&gt;Connection: Keep-Alive&lt;br/&gt;Proxy-Connection: Keep-Alive&lt;br/&gt;Content-Length: 390160&lt;br/&gt;Age: 3&lt;br/&gt;Expires: Fri, 26 Sep 2008 05:21:07 GMT&lt;br/&gt;Date: Fri, 26 Sep 2008 05:20:07 GMT&lt;br/&gt;Content-Type: text/html&lt;br/&gt;ETag: &amp;quot;5c2d7-457c5a8340d40&amp;quot;&lt;br/&gt;Server: Apache&lt;br/&gt;Last-Modified: Fri, 26 Sep 2008 05:19:09 GMT&lt;br/&gt;Accept-Ranges: bytes&lt;br/&gt;X-Powered-By: mod_xlayout_jh/0.0.1vhs.markIII.remix&lt;br/&gt;Cache-Control: max-age=60&lt;br/&gt;Vary: Accept-Encoding&lt;br/&gt;X-Cache: HIT from nanjing75-169.HP08040113.sina.com.cn&lt;/span&gt;&lt;/p&gt;&lt;p&gt;指定 202.102.75.169 主机&lt;/p&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>SoftTree  SQL Assistant 2.5 去除15天过期限止</title><link>http://borland.mblogger.cn/shuixin13/posts/34425.aspx</link><pubDate>Thu, 09 Aug 2007 15:20:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/34425.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/34425.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/34425.aspx#feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/34425.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=34425</trackback:ping><description>&lt;P&gt;挺好的一个SQL代码提示工具，&lt;/P&gt;
&lt;P&gt;目前只提供全功能的15天试用。&lt;/P&gt;
&lt;P&gt;前一次给了 1.7 版的去限止方法，&lt;/P&gt;
&lt;P&gt;今天再给新版本的去限止办法：&lt;/P&gt;
&lt;P&gt;有三个需要修改的&lt;/P&gt;
&lt;P&gt;两个是注册表键，删除了就可以&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;HKEY_CURRENT_USER\Software\Classes\STT&lt;/LI&gt;
&lt;LI&gt;HKEY_CLASSES_ROOT\STT&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;另一个是C:\Windows\win.ini 文件，&lt;/P&gt;
&lt;P&gt;找到下面类似章节，&lt;/P&gt;
&lt;P&gt;删除即可&lt;/P&gt;
&lt;P&gt;[Index]&lt;BR&gt;STTSA2=-1394855216&lt;BR&gt;SA2CS=50&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>SoftTree SQL Assistant  一个不错的SQL代码提示工具</title><link>http://borland.mblogger.cn/shuixin13/posts/34194.aspx</link><pubDate>Fri, 25 May 2007 17:40:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/34194.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/34194.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/34194.aspx#feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/34194.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=34194</trackback:ping><description>&lt;P&gt;SoftTree&amp;nbsp; SQL Assistant&amp;nbsp;一个不错的SQL代码提示工具&lt;BR&gt;&lt;A href="http://www.softtreetech.com/isql.htm"&gt;http://www.softtreetech.com/isql.htm&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;它直接使用目标程序的数据库连接&lt;BR&gt;因而可以在使用目标程序使用代理的情况下正常使用&lt;BR&gt;而 RedGate.SQLPrompt 则无法实现。&lt;/P&gt;
&lt;P&gt;目前版本已开始收费了&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;用 RegMon 查了一下，主要是这个注册表键值在起作用，&lt;/P&gt;
&lt;P&gt;[HKEY_CLASSES_ROOT\STT\STTSA2]&lt;BR&gt;"Index"=dword:&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;删除啦就行了。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>12.9 70年，纪念；犬犬 26年， 记录！</title><link>http://borland.mblogger.cn/shuixin13/posts/27303.aspx</link><pubDate>Fri, 09 Dec 2005 17:35:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/27303.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/27303.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/27303.aspx#feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/27303.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=27303</trackback:ping><description>&lt;P&gt;&lt;FONT color=#000000&gt;又是 12.9 了，&lt;BR&gt;又有多少人会记得这个日子呢？&lt;BR&gt;&lt;BR&gt;感谢父母将来带到这个世界！&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#000000 size=4&gt;事件经过&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;
&lt;TABLE width="100%" align=center border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD rowSpan=25&gt;&lt;STRONG&gt;&lt;FONT color=#000000 size=4&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD borderColor=#0 rowSpan=25&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;　&lt;FONT size=2&gt;　１９３５年１２月９日　上午１０时，北平各大中学学生３０００余人齐集新华门前请愿。随后举行大规模示威游行，反对设立冀察政务委员会，反对华北 &amp;#8220;防共自治运动&amp;#8221;，反对日本侵略华北。&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　游行队伍在西单和东长安街与军警发生冲突，学生受伤颇多，被捕者数十人。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１２月１０日　北平各校学生实行总罢课。杭州浙江大学学生会决议，响应北平学生运动，并通电全国。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１２月１１日　南京国民政府指派&amp;#8220;冀察政务委员会&amp;#8221;委员１７人，指定宋哲元为委员长。宋哲元派军警分驻各大学校门，严禁学生出校游行示威。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１２月１２日　上海、南京、武汉和广州等地大、中学校学生声援北平学生。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１２月１３日　北平６所大学的校长联名发表《告同学书》，称：被捕学生已完全释放，请愿及罢课的目的已经达到，望同学们即日恢复学业。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１２月１４日　北平市长秦德纯邀各校学生代表举行茶话会，力劝学生即日复课，&amp;#8220;勿作轨外行动&amp;#8221;，&amp;#8220;顾及华北现在环境，勿因言语引起对外纠纷&amp;#8221;。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　上海各大学学生救国会成立，通电声援北平学生运动。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１２月１５日　北平市政府与各大学当局宣布，自１６日起学生一律上课，如有违反，严惩不贷。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１２月１６日　北平４４所大中学校学生１万余人，再次举行游行示威。游行队伍遭军警镇压，被捕者二三十人，受伤４００余人。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　学生游行队伍集合在天桥、正阳门召开市民大会，市民２万余人参加。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　北平罢工、罢市、罢课。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　原定本日成立的&amp;#8220;冀察政务委员会&amp;#8221;，延期成立。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１２月１７日　宋哲元发表《告北平学生书》，称&amp;#8220;有共党煽动利用学生爱国运动&amp;#8221;，如仍有"轨外行动"，决予"适当制止"。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１９３６年１月　京、津等地学生组织南下宣传团，深入到工农群众中去宣传抗日。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　３月３１日　为北平第１７中学学生郭清死于狱中，北平举行抬棺示威游行。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　５月２８日　北平举行示威游行，游行的口号是："拥护２９军抗日"、" 发扬２９军抗日传统"、"打倒日本帝国主义"等。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　５月３０日　冀察政务委员会委员长兼２９军军长宋哲元发表谈话，表示" 若日本仍然增兵华北，余将与２９军将士实行抗日"。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　６月１３日　北平学生举行第４次示威游行，反对日本继续向华北增兵。沿途军警对游行队伍不加干涉，并予以同情。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;　　１２月１２日　北平学生举行第５次示威游行，高呼"援助绥远抗战"、" 各党派联合起来"等口号。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href=http://129.china1840-1949.net.cn/ target="_blank"&gt;http://129.china1840-1949.net.cn/&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL 怎么筛选出不合法日期格式的记录</title><link>http://borland.mblogger.cn/shuixin13/posts/27160.aspx</link><pubDate>Tue, 06 Dec 2005 11:39:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/27160.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/27160.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/27160.aspx#feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/27160.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=27160</trackback:ping><description>&lt;P&gt;MySQL 中没有提供类似 MSSQL&amp;nbsp; 的 ISDATE()&amp;nbsp;函数，&lt;/P&gt;
&lt;P&gt;&amp;nbsp;不过，我们可以通过&amp;nbsp;TO_DAYS() 判断。&lt;/P&gt;
&lt;P&gt;MySQL&amp;nbsp;为了&amp;#8220;加快&amp;#8221;对日期的检查，&lt;BR&gt;只对日期做简单的判断，&lt;BR&gt;即仅检查月份应在 0-12 范围内，&lt;BR&gt;以及天在 0-31 范围内&lt;BR&gt;这样做的原因是，&lt;BR&gt;我们认为应用程序有责任来处理日期合法性的检查，&lt;BR&gt;而不是由 SQL 服务器来处理。&lt;BR&gt;&lt;BR&gt;因而 TO_DAYS('2005-02-31')&amp;nbsp;返回的是&amp;nbsp;数字，&lt;BR&gt;而&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TO_DAYS('2005-00-31')&amp;nbsp;返回的是 NULL&lt;BR&gt;&lt;BR&gt;所以要分别对两种结果进行处理。&lt;/P&gt;
&lt;P&gt;SET @dt = '2002-00-31';&lt;BR&gt;SELECT User FROM mysql.user &lt;BR&gt;WHERE TO_DAYS(@dt) IS NULL &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR (DATE_FORMAT(@dt,'%Y-%m-%d') &amp;lt;&amp;gt; FROM_DAYS(TO_DAYS(@dt)));&lt;/P&gt;
&lt;P&gt;上面的 WHERE 子句里就是我们需要的表达式&lt;/P&gt;
&lt;P&gt;例：&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;mysql&amp;gt; SET @dt = '2002-2-31';&lt;BR&gt;Query OK, 0 rows affected (0.00 sec)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;mysql&amp;gt; SELECT DATE_FORMAT(@dt,'%Y-%m-%d'), FROM_DAYS(TO_DAYS(@dt));&lt;BR&gt;+-----------------------------+-------------------------+&lt;BR&gt;| DATE_FORMAT(@dt,'%Y-%m-%d') | FROM_DAYS(TO_DAYS(@dt)) |&lt;BR&gt;+-----------------------------+-------------------------+&lt;BR&gt;| 2002-02-31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 2002-03-03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+-----------------------------+-------------------------+&lt;BR&gt;1 row in set (0.00 sec)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;mysql&amp;gt; SELECT DATE_FORMAT(@dt,'%Y-%m-%d') = FROM_DAYS(TO_DAYS(@dt));&lt;BR&gt;+-------------------------------------------------------+&lt;BR&gt;| DATE_FORMAT(@dt,'%Y-%m-%d') = FROM_DAYS(TO_DAYS(@dt)) |&lt;BR&gt;+-------------------------------------------------------+&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 |&lt;BR&gt;+-------------------------------------------------------+&lt;BR&gt;1 row in set (0.00 sec)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;mysql&amp;gt; SELECT User FROM mysql.user&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; WHERE TO_DAYS(@dt) IS NULL&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR (DATE_FORMAT(@dt,'%Y-%m-%d') &amp;lt;&amp;gt; FROM_DAYS(TO_DAYS(@dt)));&lt;BR&gt;+------+&lt;BR&gt;| User |&lt;BR&gt;+------+&lt;BR&gt;| root |&lt;BR&gt;+------+&lt;BR&gt;1 row in set (0.00 sec)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;mysql&amp;gt;&lt;BR&gt;mysql&amp;gt;&lt;BR&gt;mysql&amp;gt; SET @dt = '2002-00-31';&lt;BR&gt;Query OK, 0 rows affected (0.00 sec)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;mysql&amp;gt; SELECT DATE_FORMAT(@dt,'%Y-%m-%d'), FROM_DAYS(TO_DAYS(@dt));&lt;BR&gt;+-----------------------------+-------------------------+&lt;BR&gt;| DATE_FORMAT(@dt,'%Y-%m-%d') | FROM_DAYS(TO_DAYS(@dt)) |&lt;BR&gt;+-----------------------------+-------------------------+&lt;BR&gt;| 2002-00-31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+-----------------------------+-------------------------+&lt;BR&gt;1 row in set, 1 warning (0.00 sec)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;mysql&amp;gt; SELECT DATE_FORMAT(@dt,'%Y-%m-%d') = FROM_DAYS(TO_DAYS(@dt));&lt;BR&gt;+-------------------------------------------------------+&lt;BR&gt;| DATE_FORMAT(@dt,'%Y-%m-%d') = FROM_DAYS(TO_DAYS(@dt)) |&lt;BR&gt;+-------------------------------------------------------+&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL |&lt;BR&gt;+-------------------------------------------------------+&lt;BR&gt;1 row in set, 1 warning (0.00 sec)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;mysql&amp;gt; SELECT User FROM mysql.user&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; WHERE TO_DAYS(@dt) IS NULL&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR (DATE_FORMAT(@dt,'%Y-%m-%d') &amp;lt;&amp;gt; FROM_DAYS(TO_DAYS(@dt)));&lt;BR&gt;+------+&lt;BR&gt;| User |&lt;BR&gt;+------+&lt;BR&gt;| root |&lt;BR&gt;+------+&lt;BR&gt;1 row in set, 2 warnings (0.00 sec)&lt;/FONT&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL 5.0.13 -Max 支持远程链接表.</title><link>http://borland.mblogger.cn/shuixin13/posts/27058.aspx</link><pubDate>Fri, 02 Dec 2005 23:18:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/27058.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/27058.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/27058.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/27058.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=27058</trackback:ping><description>&lt;P&gt;MySQL 5.0.13 -Max 版本&amp;nbsp;支持远程链接表.&lt;BR&gt;相当于 SQL Server 的链接服务的作用.&lt;BR&gt;目前还有一些限止.&lt;BR&gt;比如远程服务器只能是 MySQL&lt;BR&gt;不支持分布事务&lt;BR&gt;使用 &lt;FONT face="Courier New"&gt;SHOW CREATE TABLE&lt;/FONT&gt; or &lt;CODE class=literal&gt;SHOW TABLE STATUS&lt;/CODE&gt;&amp;nbsp; 就能看到连接串&lt;/P&gt;
&lt;P&gt;不过这些都会尽快的被修正.&lt;BR&gt;&lt;BR&gt;耳鸣得厉害,不多说了.先睡去了.&lt;BR&gt;详细地可以查看链接:&lt;BR&gt;&lt;A href="http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html"&gt;http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;简单实现代码:&lt;BR&gt;远程服务器表定义(假设数据表在库federated中)&lt;BR&gt;&lt;BR&gt;CREATE TABLE test_table (&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int(20) NOT NULL auto_increment,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name&amp;nbsp;&amp;nbsp; varchar(32) NOT NULL default '',&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; other&amp;nbsp; int(20) NOT NULL default '0',&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRIMARY KEY&amp;nbsp; (id),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEY name (name),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEY other_key (other)&lt;BR&gt;)&lt;BR&gt;ENGINE=MyISAM&lt;BR&gt;DEFAULT CHARSET=latin1;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;使用服务器表定义:&lt;BR&gt;&lt;BR&gt;CREATE TABLE federated_table (&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int(20) NOT NULL auto_increment,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name&amp;nbsp;&amp;nbsp; varchar(32) NOT NULL default '',&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; other&amp;nbsp; int(20) NOT NULL default '0',&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRIMARY KEY&amp;nbsp; (id),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEY name (name),&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEY other_key (other)&lt;BR&gt;)&lt;BR&gt;ENGINE=FEDERATED&lt;BR&gt;DEFAULT CHARSET=latin1&lt;BR&gt;CONNECTION='mysql://root@remote_host:9306/federated/test_table';&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;connection 提示可以是以下几种格式&lt;BR&gt;CONNECTION='mysql://username:password@hostname:port/database/tablename'&lt;BR&gt;CONNECTION='mysql://username@hostname/database/tablename'&lt;BR&gt;CONNECTION='mysql://username:password@hostname/database/tablename'&lt;BR&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>我快疯了.</title><link>http://borland.mblogger.cn/shuixin13/posts/27056.aspx</link><pubDate>Fri, 02 Dec 2005 23:08:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/27056.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/27056.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/27056.aspx#feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/27056.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=27056</trackback:ping><description>&lt;P&gt;一个QQ网友,&lt;BR&gt;第一次使用 VB.NET&lt;BR&gt;项目要求写一个Socket 应用.&lt;BR&gt;无语,&lt;BR&gt;没办法,&lt;BR&gt;先帮她写了个简单的收发文件应用&lt;BR&gt;&lt;BR&gt;从此恶梦开始,&lt;BR&gt;连着一个星期,&lt;BR&gt;被她追着问.&lt;BR&gt;&lt;BR&gt;我快疯了.&lt;BR&gt;今天竟开始耳鸣了.&lt;BR&gt;&lt;BR&gt;不知道学校里的老师是不是也会这样子地郁闷呢?&lt;BR&gt;我哭,早些睡去了.&lt;BR&gt;希望明天会好起来.&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>使用 LEFT JOIN 实现 MySQL 多表关联更新</title><link>http://borland.mblogger.cn/shuixin13/posts/26641.aspx</link><pubDate>Tue, 15 Nov 2005 21:16:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/26641.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/26641.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/26641.aspx#feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/26641.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=26641</trackback:ping><description>&lt;P&gt;&lt;FONT face="Courier New"&gt;SET NAMES gb2312;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;CREATE TABLE `o` (&lt;BR&gt;&amp;nbsp; `id` int(11) default NULL,&lt;BR&gt;&amp;nbsp; `name` varchar(11) default NULL&lt;BR&gt;) TYPE=MyISAM;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;insert into `o` values ('11','数据1');&lt;BR&gt;insert into `o` values ('22','数据2');&lt;BR&gt;insert into `o` values ('33','数据3');&lt;BR&gt;insert into `o` values ('44','数据4');&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;CREATE TABLE `class1` (&lt;BR&gt;&amp;nbsp; `id` int(11) default NULL,&lt;BR&gt;&amp;nbsp; `name` varchar(11) default NULL&lt;BR&gt;) TYPE=MyISAM;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;insert into `class1` values ('11','数据3');&lt;BR&gt;insert into `class1` values ('22','数据2');&lt;BR&gt;insert into `class1` values ('33','数据4');&lt;BR&gt;insert into `class1` values ('44','数据1');&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;CREATE TABLE `class2` (&lt;BR&gt;&amp;nbsp; `id` int(11) default NULL,&lt;BR&gt;&amp;nbsp; `name` varchar(50) default NULL&lt;BR&gt;) TYPE=MyISAM;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;insert into `class2` values ('11842542','子数据3');&lt;BR&gt;insert into `class2` values ('22543253','子数据2');&lt;BR&gt;insert into `class2` values ('33245235','子数据4');&lt;BR&gt;insert into `class2` values ('44543254','子数据1');&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;SELECT *&lt;BR&gt;, CONCAT(o.id, RIGHT(B.id, LENGTH(CAST( B.id AS CHAR)) - 2)) value &lt;BR&gt;FROM class1 A, class2 B, o&lt;BR&gt;where A.id = Left(B.id, 2)&lt;BR&gt;and A.name = o.name;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;+------+-------+----------+---------+------+-------+----------+&lt;BR&gt;| id&amp;nbsp;&amp;nbsp; | name&amp;nbsp; | id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | name&amp;nbsp;&amp;nbsp;&amp;nbsp; | id&amp;nbsp;&amp;nbsp; | name&amp;nbsp; | value&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+------+-------+----------+---------+------+-------+----------+&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 44 | 数据1&amp;nbsp; | 44543254 | 子数据1 &amp;nbsp;|&amp;nbsp;&amp;nbsp; 11 | 数据1 &amp;nbsp;| 11543254 |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 22 | 数据2&amp;nbsp; | 22543253 | 子数据2 &amp;nbsp;|&amp;nbsp;&amp;nbsp; 22 | 数据2&amp;nbsp; | 22543253 |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 11 | 数据3&amp;nbsp; | 11842542 | 子数据3 &amp;nbsp;|&amp;nbsp;&amp;nbsp; 33 | 数据3&amp;nbsp; | 33842542 |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 33 | 数据4&amp;nbsp; | 33245235 | 子数据4 &amp;nbsp;|&amp;nbsp;&amp;nbsp; 44 | 数据4&amp;nbsp; | 44245235 |&lt;BR&gt;+------+-------+----------+---------+------+-------+----------+&lt;BR&gt;&lt;EM&gt;4 rows in set (0.00 sec)&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;UPDATE&lt;BR&gt;class2 &lt;BR&gt;LEFT JOIN class1&amp;nbsp; ON class1.id = LEFT(class2.id, 2)&lt;BR&gt;LEFT JOIN o ON class1.name = o.name&lt;BR&gt;SET class2.ID = CONCAT(o.id, RIGHT(class2.id, LENGTH(CAST(class2.id AS CHAR)) - 2)) ;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;EM&gt;Query OK, 3 rows affected (0.00 sec)&lt;BR&gt;Rows matched: 4&amp;nbsp; Changed: 3&amp;nbsp; Warnings: 0&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;SELECT * FROM class2;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;+----------+---------+&lt;BR&gt;| id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | name&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+----------+---------+&lt;BR&gt;| 33842542 | 子数据3 &amp;nbsp;|&lt;BR&gt;| 22543253 | 子数据2&amp;nbsp; |&lt;BR&gt;| 44245235 | 子数据4&amp;nbsp; |&lt;BR&gt;| 11543254 | 子数据1&amp;nbsp; |&lt;BR&gt;+----------+---------+&lt;BR&gt;&lt;EM&gt;4 rows in set (0.00 sec)&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;DROP TABLE `o`;&lt;BR&gt;DROP TABLE `class1`;&lt;BR&gt;DROP TABLE `class2`;&lt;/FONT&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL 根据物理记录号更新数据</title><link>http://borland.mblogger.cn/shuixin13/posts/26415.aspx</link><pubDate>Fri, 11 Nov 2005 18:25:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/26415.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/26415.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/26415.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/26415.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=26415</trackback:ping><description>&lt;P&gt;今天QQ好友贾春春遇到一个问题，&lt;BR&gt;一个表中有三条完全相同的记录，&lt;BR&gt;现在需要更新物理上的第三条记录！&lt;/P&gt;
&lt;P&gt;呵呵，&lt;BR&gt;MySQL 并没有记录号这一概念，&lt;BR&gt;所以又得动用 MySQL 扩展SQL句法中最灵活的用户变量了！&lt;/P&gt;
&lt;P&gt;:-)我喜欢！&lt;BR&gt;&lt;BR&gt;CREATE TABLE `user` (&lt;BR&gt;&amp;nbsp; `userid` int(11) NOT NULL default '0',&lt;BR&gt;&amp;nbsp; `item` varchar(100),&lt;BR&gt;&amp;nbsp; KEY `userid` (`userid`)&lt;BR&gt;) TYPE=MyISAM;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;INSERT INTO `user` VALUES (1, 'A1');&lt;BR&gt;INSERT INTO `user` VALUES (1, 'A2');&lt;BR&gt;INSERT INTO `user` VALUES (1, 'A3');&lt;BR&gt;INSERT INTO `user` VALUES (1, 'A4');&lt;BR&gt;INSERT INTO `user` VALUES (2, 'B1');&lt;BR&gt;INSERT INTO `user` VALUES (2, 'B2');&lt;/P&gt;
&lt;P&gt;SET @t = 0;&lt;/P&gt;
&lt;P&gt;UPDATE `user`&lt;BR&gt;SET &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; `userid` = IF((@t := @t+1), `userid`, `userid`)&lt;BR&gt;&amp;nbsp; ,&amp;nbsp; `item` = IF(@t = 3, 'C3', `item` )&lt;BR&gt;WHERE `userid` = 1; &lt;/P&gt;
&lt;P&gt;Query OK, 1 row affected (0.02 sec)&lt;BR&gt;Rows matched: 4&amp;nbsp; Changed: 1&amp;nbsp; Warnings: 0&lt;/P&gt;
&lt;P&gt;SELECT * FROM `user`;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;+--------+------+&lt;BR&gt;| userid | item |&lt;BR&gt;+--------+------+&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 | A1&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 | A2&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 | C3&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 | A4&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 | B1&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 | B2&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+--------+------+&lt;BR&gt;6 rows in set (0.00 sec)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;通过结果提示信息&lt;BR&gt;Query OK, 1 row affected (0.02 sec)&lt;BR&gt;Rows matched: 4&amp;nbsp; Changed: 1&amp;nbsp; Warnings: 0&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;可以看出,&lt;BR&gt;实际有4条记录匹配,&lt;BR&gt;因为有3条记录需要更新的数据与原数据相同,&lt;BR&gt;所以 MySQL 智能地将其优化了,不再更新物理数据.&lt;BR&gt;该语句的效率还是不错的.&lt;BR&gt;:)&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL 实现 Ms SQL 的 sp_executesql</title><link>http://borland.mblogger.cn/shuixin13/posts/25911.aspx</link><pubDate>Thu, 03 Nov 2005 22:59:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/25911.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/25911.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/25911.aspx#feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/25911.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=25911</trackback:ping><description>&lt;P&gt;从MySQL 5.0 开始，&lt;BR&gt;支持了一个全新的SQL句法：&lt;BR&gt;&lt;BR&gt;PREPARE &lt;EM class=replaceable&gt;&lt;CODE&gt;stmt_name&lt;/CODE&gt;&lt;/EM&gt; FROM &lt;EM class=replaceable&gt;&lt;CODE&gt;preparable_stmt&lt;/CODE&gt;&lt;/EM&gt;;&lt;BR&gt;&lt;BR&gt;EXECUTE &lt;EM class=replaceable&gt;&lt;CODE&gt;stmt_name&lt;/CODE&gt;&lt;/EM&gt; [USING @&lt;EM class=replaceable&gt;&lt;CODE&gt;var_name&lt;/CODE&gt;&lt;/EM&gt; [, @&lt;EM class=replaceable&gt;&lt;CODE&gt;var_name&lt;/CODE&gt;&lt;/EM&gt;] ...];&lt;BR&gt;&lt;BR&gt;{DEALLOCATE | DROP} PREPARE &lt;EM class=replaceable&gt;&lt;CODE&gt;stmt_name&lt;/CODE&gt;&lt;/EM&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;通过它，我们就可以实现类似 MS SQL 的 sp_executesql 执行动态SQL语句！&lt;BR&gt;同时也可以防止注入式攻击！&lt;BR&gt;&lt;BR&gt;为了有一个感性的认识，&lt;BR&gt;下面先给几个小例子：&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;PRE class=programlisting&gt;mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;SET @a = 3;&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;SET @b = 4;&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;EXECUTE stmt1 USING @a, @b;&lt;/CODE&gt;&lt;/STRONG&gt;
+------------+
| hypotenuse |
+------------+
|          5 |
+------------+
mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;DEALLOCATE PREPARE stmt1;&lt;/CODE&gt;&lt;/STRONG&gt;
&lt;/PRE&gt;&lt;PRE class=programlisting&gt;mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;PREPARE stmt2 FROM @s;&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;SET @a = 6;&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;SET @b = 8;&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;EXECUTE stmt2 USING @a, @b;&lt;/CODE&gt;&lt;/STRONG&gt;
+------------+
| hypotenuse |
+------------+
|         10 |
+------------+
mysql&amp;gt; &lt;STRONG class=userinput&gt;&lt;CODE&gt;DEALLOCATE PREPARE stmt2;&lt;/CODE&gt;&lt;/STRONG&gt;
&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&lt;STRONG class=userinput&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&lt;CODE&gt;&lt;PRE class=programlisting&gt;如果你的MySQL 版本是 5.0.7 或者更高的，你还可以在 LIMIT 子句中使用它，&lt;BR&gt;示例如下：&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;mysql&amp;gt; &lt;CODE&gt;&lt;STRONG&gt;SET @a=1;&lt;/STRONG&gt;&lt;/CODE&gt;&lt;/PRE&gt;mysql&amp;gt;&lt;STRONG&gt; &lt;CODE&gt;PREPARE STMT FROM "SELECT * FROM tbl LIMIT ?";&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt;&lt;STRONG&gt; &lt;CODE&gt;EXECUTE STMT USING @a;&lt;/CODE&gt;&lt;/STRONG&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE class=programlisting&gt;mysql&amp;gt;&lt;STRONG&gt; &lt;CODE&gt;SET @skip=1; SET @numrows=5;&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt;&lt;STRONG&gt; &lt;CODE&gt;PREPARE STMT FROM "SELECT * FROM tbl LIMIT ?, ?";&lt;/CODE&gt;&lt;/STRONG&gt;
mysql&amp;gt;&lt;STRONG&gt; &lt;CODE&gt;EXECUTE STMT USING @skip, @numrows;&lt;/CODE&gt;&lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;STRONG&gt;使用 PREPARE 的几个注意点：&lt;BR&gt;&lt;/STRONG&gt;A：
 PREPARE &lt;EM class=replaceable&gt;&lt;CODE&gt;stmt_name&lt;/CODE&gt;&lt;/EM&gt; FROM &lt;EM class=replaceable&gt;&lt;CODE&gt;preparable_stmt&lt;/CODE&gt;&lt;/EM&gt;;
 预定义一个语句，并将它赋给 &lt;EM&gt;stmt_name &lt;/EM&gt;&lt;/CODE&gt;，&lt;EM&gt;stmt_name &lt;/EM&gt;是不区分大小写的。&lt;BR&gt;B：&lt;BR&gt; 即使 &lt;EM&gt;preparable_stmt&lt;/EM&gt; 语句中的 ? 所代表的是一个字符串，你也不需要将 ? 用引号包含起来。&lt;BR&gt;C：&lt;BR&gt; 如果新的 PREPARE 语句使用了一个已存在的 &lt;EM&gt;stmt_name&lt;/EM&gt; ，那么原有的将被立即释放！&lt;BR&gt; 即使这个新的 PREPARE 语句因为错误而不能被正确执行。&lt;/PRE&gt;&lt;PRE class=programlisting&gt;D：&lt;BR&gt; PREPARE &lt;EM&gt;stmt_name&lt;/EM&gt; 的作用域是当前客户端连接会话可见。&lt;BR&gt;E：&lt;BR&gt; 要释放一个预定义语句的资源，可以使用 DEALLOCATE PREPARE 句法。&lt;/PRE&gt;&lt;PRE class=programlisting&gt;F：&lt;/PRE&gt;&lt;PRE class=programlisting&gt; EXECUTE &lt;EM class=replaceable&gt;&lt;CODE&gt;stmt_name&lt;/CODE&gt;&lt;/EM&gt; 句法中，如果 &lt;EM&gt;stmt_name&lt;/EM&gt; 不存在，将会引发一个错误。 &lt;/PRE&gt;&lt;PRE class=programlisting&gt;G：&lt;/PRE&gt;&lt;PRE class=programlisting&gt; 如果在终止客户端连接会话时，没有显式地调用 DEALLOCATE PREPARE 句法释放资源，服务器端会自己动释放它。&lt;BR&gt;H：&lt;/PRE&gt;&lt;PRE class=programlisting&gt; 在预定义语句中，CREATE TABLE, &lt;CODE class=literal&gt;DELETE&lt;/CODE&gt;, &lt;CODE class=literal&gt;DO&lt;/CODE&gt;, &lt;CODE class=literal&gt;INSERT&lt;/CODE&gt;, &lt;CODE class=literal&gt;REPLACE&lt;/CODE&gt;, &lt;CODE class=literal&gt;SELECT&lt;/CODE&gt;, &lt;CODE class=literal&gt;SET&lt;/CODE&gt;, &lt;CODE class=literal&gt;UPDATE&lt;/CODE&gt;, 和大部分的 &lt;CODE class=literal&gt;SHOW&lt;/CODE&gt; 句法被支持。&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&lt;BR&gt;G：&lt;/PRE&gt;&lt;PRE class=programlisting&gt; PREPARE 语句不可以用于存储过程，自定义函数！但从 MySQL 5.0.13 开始，它可以被用于存储过程，仍不支持在函数中使用！&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;下面给个示例：&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;CREATE PROCEDURE `p1`(&lt;BR&gt;IN id INT UNSIGNED,&lt;BR&gt;IN name VARCHAR(11)&lt;BR&gt;)&lt;BR&gt;BEGIN&lt;BR&gt;&amp;nbsp; lable_exit: BEGIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @SqlCmd = 'SELECT * FROM tA ';&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF id IS NOT NULL THEN&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @SqlCmd = CONCAT(@SqlCmd , 'WHERE id=?');&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PREPARE stmt FROM @SqlCmd;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @a = id;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXECUTE stmt USING @a;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEAVE lable_exit;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF name IS NOT NULL THEN&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @SqlCmd = CONCAT(@SqlCmd , 'WHERE name LIKE ?');&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PREPARE stmt FROM @SqlCmd;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @a = CONCAT(name, '%');&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXECUTE stmt USING @a;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEAVE lable_exit;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF;&lt;BR&gt;&amp;nbsp; END lable_exit;&lt;BR&gt;END;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=programlisting&gt;CALL `p1`(1,NULL);&lt;BR&gt;CALL `p1`(NULL,'QQ');&lt;/PRE&gt;&lt;PRE class=programlisting&gt;DROP PROCEDURE `p1`;&lt;/PRE&gt;&lt;/PRE&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL 实现类似 MSSQL 的完整外部联接 </title><link>http://borland.mblogger.cn/shuixin13/posts/25749.aspx</link><pubDate>Tue, 01 Nov 2005 17:03:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/25749.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/25749.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/25749.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/25749.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=25749</trackback:ping><description>&lt;P&gt;&lt;FONT face="Courier New"&gt;在 MS SQL Server 中，&lt;BR&gt;有一个完整外部联接语法，&lt;BR&gt;而在 MySQL 中，却没有相对应的连接，&lt;BR&gt;下面我们就来实现这种连接！&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;FULL JOIN 或 FULL OUTER JOIN。 &lt;BR&gt;完整外部联接返回左表和右表中的所有行。&lt;BR&gt;当某行在另一个表中没有匹配行时，则另一个表的选择列表列包含空值。&lt;BR&gt;如果表之间有匹配行，则整个结果集行包含基表的数据值。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;+------+------+&amp;nbsp; +------+------+&amp;nbsp; +------+------+&lt;BR&gt;| AId&amp;nbsp; | A&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; | BId&amp;nbsp; | B&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; | CId&amp;nbsp; | C&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+------+------+&amp;nbsp; +------+------+&amp;nbsp; +------+------+&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 | A1&amp;nbsp;&amp;nbsp; |&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 | B1&amp;nbsp;&amp;nbsp; |&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 | A2&amp;nbsp;&amp;nbsp; |&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 | C2&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 | A3&amp;nbsp;&amp;nbsp; |&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 | B3&amp;nbsp;&amp;nbsp; |&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+------+------+&amp;nbsp; +------+------+&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 | C4&amp;nbsp;&amp;nbsp; |&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +------+------+&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;期望的结果：&lt;BR&gt;+------+------+------+------+------+------+&lt;BR&gt;| AId&amp;nbsp; | A&amp;nbsp;&amp;nbsp;&amp;nbsp; | BId&amp;nbsp; | B&amp;nbsp;&amp;nbsp;&amp;nbsp; | CId&amp;nbsp; | C&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+------+------+------+------+------+------+&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 | A1&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 | B1&amp;nbsp;&amp;nbsp; | NULL | NULL |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 | A2&amp;nbsp;&amp;nbsp; | NULL | NULL |&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 | C2&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 | A3&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 | B3&amp;nbsp;&amp;nbsp; | NULL | NULL |&lt;BR&gt;| NULL | NULL | NULL | NULL |&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 | C4&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+------+------+------+------+------+------+&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;/* 创建测试表 */&lt;BR&gt;CREATE TABLE tA(AId int, A varchar(4));&lt;BR&gt;CREATE TABLE tB(BId int, B varchar(4));&lt;BR&gt;CREATE TABLE tC(CId int, C varchar(4));&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;/* 插入数据 */&lt;BR&gt;INSERT INTO tA &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT 1, 'A1' &lt;BR&gt;&amp;nbsp;UNION SELECT 2, 'A2' &lt;BR&gt;&amp;nbsp;UNION SELECT 3, 'A3';&lt;BR&gt;&amp;nbsp;&lt;BR&gt;INSERT INTO tB &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT 1, 'B1' &lt;BR&gt;&amp;nbsp;UNION SELECT 3, 'B3';&lt;BR&gt;&amp;nbsp;&lt;BR&gt;INSERT INTO tC &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT 2, 'C2' &lt;BR&gt;&amp;nbsp;UNION SELECT 4, 'C4';&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;/* 显示连接结果 完整外部 SQL SERVER */&lt;BR&gt;SELECT * FROM tA&lt;BR&gt;FULL JOIN tB ON tA.AId = tB.BId&lt;BR&gt;FULL JOIN tC ON tA.AId = tC.CId;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;/* 显示连接结果 完整外部 MySQL */&lt;BR&gt;SELECT AId,A,BId,B,CId,C FROM&lt;BR&gt;(&lt;BR&gt;SELECT AId `Id` FROM tA&lt;BR&gt;UNION &lt;BR&gt;SELECT BId FROM tB&lt;BR&gt;UNION&lt;BR&gt;SELECT CId FROM tC&lt;BR&gt;) `TT`&lt;BR&gt;LEFT JOIN tA ON TT.Id = tA.AId&lt;BR&gt;LEFT JOIN tB ON TT.Id = tB.BId &lt;BR&gt;LEFT JOIN tC ON TT.Id = tC.CId；&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;/* 删除测试表 */&lt;BR&gt;DROP TABLE tA;&lt;BR&gt;DROP TABLE tB;&lt;BR&gt;DROP TABLE tC;&lt;/FONT&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL 按分组随机取N条记录</title><link>http://borland.mblogger.cn/shuixin13/posts/25436.aspx</link><pubDate>Wed, 26 Oct 2005 23:15:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/25436.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/25436.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/25436.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/25436.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=25436</trackback:ping><description>&lt;P&gt;&lt;FONT face="Courier New"&gt;本例也适用于按分组取前 n 条记录。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;现有一个表 id 为组别，content 为内容&lt;BR&gt;+----+---------+&lt;BR&gt;| id | content |&lt;BR&gt;+----+---------+&lt;BR&gt;|&amp;nbsp; 1 | 1,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 1 | 1,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 1 | 1,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 1 | 1,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 2 | 2,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 2 | 2,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 2 | 2,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 2 | 2,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 3 | 3,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 3 | 3,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 3 | 3,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 4 | 4,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 4 | 4,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 4 | 4,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+----+---------+&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;期望在每个分组中随机地取出 n 条记录，&lt;BR&gt;例各组随机 2 条，得到结果如下:&lt;BR&gt;+----+---------+&lt;BR&gt;| Id | content |&lt;BR&gt;+----+---------+&lt;BR&gt;|&amp;nbsp; 1 | 1,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 1 | 1,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 2 | 2,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 2 | 2,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 3 | 3,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 3 | 3,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 4 | 4,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 4 | 4,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+----+---------+&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;同样有两个可选方案，&lt;BR&gt;方案一：通过用户变量；&lt;BR&gt;方案二：使用临时表，&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;代码如下：(测试环境: MySQL 5.0.15)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;-- 创建测试环境&lt;BR&gt;CREATE TABLE `tA` (&lt;BR&gt;&amp;nbsp; `id` int(10) unsigned NOT NULL default '0',&lt;BR&gt;&amp;nbsp; `content` varchar(255) NOT NULL default ''&lt;BR&gt;) ENGINE=MyISAM;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;INSERT INTO `tA` VALUES (1, '1,1');&lt;BR&gt;INSERT INTO `tA` VALUES (1, '1,2');&lt;BR&gt;INSERT INTO `tA` VALUES (1, '1,3');&lt;BR&gt;INSERT INTO `tA` VALUES (1, '1,4');&lt;BR&gt;INSERT INTO `tA` VALUES (2, '2,1');&lt;BR&gt;INSERT INTO `tA` VALUES (2, '2,2');&lt;BR&gt;INSERT INTO `tA` VALUES (2, '2,3');&lt;BR&gt;INSERT INTO `tA` VALUES (2, '2,4');&lt;BR&gt;INSERT INTO `tA` VALUES (3, '3,1');&lt;BR&gt;INSERT INTO `tA` VALUES (3, '3,2');&lt;BR&gt;INSERT INTO `tA` VALUES (3, '3,3');&lt;BR&gt;INSERT INTO `tA` VALUES (4, '4,1');&lt;BR&gt;INSERT INTO `tA` VALUES (4, '4,2');&lt;BR&gt;INSERT INTO `tA` VALUES (4, '4,3');&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;SELECT * FROM `tA`;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;SELECT tC.`Id`, tC.`content`&lt;BR&gt;FROM&lt;BR&gt;(&lt;BR&gt;&amp;nbsp;SELECT&lt;BR&gt;&amp;nbsp;&amp;nbsp; @Id := CASE WHEN (@GroupId &amp;lt;&amp;gt; `Id`) THEN 1 ELSE (@Id + 1)&amp;nbsp; END `RId`&lt;BR&gt;&amp;nbsp; ,&amp;nbsp; (@GroupId := `Id`)&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; , `tA`.*&lt;BR&gt;&amp;nbsp;FROM&lt;BR&gt;&amp;nbsp;&amp;nbsp; (SELECT * FROM `tA` ORDER BY `Id`, RAND()) `tA`&lt;BR&gt;&amp;nbsp; ,(SELECT @Id := 0, @GroupId := -1) tB&lt;BR&gt;) `tC`&lt;BR&gt;WHERE tC.`RId` &amp;lt; 3;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;-- 删除测试环境&lt;BR&gt;DROP TABLE `tA`;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;注临时表的思路与上面一样，今日不提供了，&lt;BR&gt;下面讲解一下用户变量示例的思路&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;这里最重要的是要得到一个中间结果&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;SELECT&lt;BR&gt;&amp;nbsp;&amp;nbsp; @Id := CASE WHEN (@GroupId &amp;lt;&amp;gt; `Id`) THEN 1 ELSE (@Id + 1)&amp;nbsp; END `RId`&lt;BR&gt;&amp;nbsp; ,&amp;nbsp; (@GroupId := `Id`)&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; , `tA`.*&lt;BR&gt;&amp;nbsp;FROM&lt;BR&gt;&amp;nbsp;&amp;nbsp; (SELECT * FROM `tA` ORDER BY `Id`, RAND()) `tA`&lt;BR&gt;&amp;nbsp; ,(SELECT @Id := 0, @GroupId := -1) tB;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;+------+--------------------+----+---------+&lt;BR&gt;| RId&amp;nbsp; | (@GroupId := `Id`) | id | content |&lt;BR&gt;+------+--------------------+----+---------+&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 6 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 9 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 10 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 11 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 12 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp; 1 | 1,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 6 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 9 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 10 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 11 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 12 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp; 2 | 2,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp; 3 | 3,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp; 3 | 3,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp; 3 | 3,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp; 3 | 3,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp; 3 | 3,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 6 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp; 3 | 3,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp; 3 | 3,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp; 3 | 3,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 9 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp; 3 | 3,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp; 4 | 4,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp; 4 | 4,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp; 4 | 4,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp; 4 | 4,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp; 4 | 4,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 6 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp; 4 | 4,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp; 4 | 4,3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 8 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp; 4 | 4,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp; 9 |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 |&amp;nbsp; 4 | 4,2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+------+--------------------+----+---------+&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL 列表属性的查询</title><link>http://borland.mblogger.cn/shuixin13/posts/25432.aspx</link><pubDate>Wed, 26 Oct 2005 21:53:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/25432.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/25432.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/25432.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/25432.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=25432</trackback:ping><description>&lt;P&gt;&lt;FONT face="Courier New"&gt;现有两张表，&lt;BR&gt;`item`&lt;BR&gt;+----+-------+&lt;BR&gt;| id | name&amp;nbsp; |&lt;BR&gt;+----+-------+&lt;BR&gt;|&amp;nbsp; 1 | hello |&lt;BR&gt;|&amp;nbsp; 2 | world |&lt;BR&gt;|&amp;nbsp; 3 | good&amp;nbsp; |&lt;BR&gt;|&amp;nbsp; 4 | boy&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+----+-------+&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;`publish`&lt;BR&gt;+-----+---------+&lt;BR&gt;| cid | content |&lt;BR&gt;+-----+---------+&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 1 | 3,1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;|&amp;nbsp;&amp;nbsp; 2 | 2,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+-----+---------+&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;根据 `content` 中的列表值，&lt;BR&gt;期望得到结果:&lt;BR&gt;+----+-------+&lt;BR&gt;| id | name&amp;nbsp; |&lt;BR&gt;+----+-------+&lt;BR&gt;|&amp;nbsp; 1 | hello |&lt;BR&gt;|&amp;nbsp; 3 | good&amp;nbsp; |&lt;BR&gt;+----+-------+&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;下面提供两个解决方案&lt;BR&gt;脚本如下(测试环境: MySQL 5.0.15):&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;-- 创建测试环境&lt;BR&gt;CREATE TABLE `item` (&lt;BR&gt;&amp;nbsp; `id` int(10) unsigned NOT NULL auto_increment,&lt;BR&gt;&amp;nbsp; `name` varchar(20) NOT NULL default '',&lt;BR&gt;&amp;nbsp; PRIMARY KEY&amp;nbsp; (`id`)&lt;BR&gt;) ENGINE=MyISAM;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;INSERT INTO `item` VALUES (1, 'hello');&lt;BR&gt;INSERT INTO `item` VALUES (2, 'world');&lt;BR&gt;INSERT INTO `item` VALUES (3, 'good');&lt;BR&gt;INSERT INTO `item` VALUES (4, 'boy');&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;CREATE TABLE `publish` (&lt;BR&gt;&amp;nbsp; `cid` int(10) unsigned NOT NULL default '0',&lt;BR&gt;&amp;nbsp; `content` varchar(255) NOT NULL default ''&lt;BR&gt;) ENGINE=MyISAM;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;INSERT INTO `publish` VALUES (1, '3,1');&lt;BR&gt;INSERT INTO `publish` VALUES (2, '2,4');&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;SELECT * FROM `item`;&lt;BR&gt;SELECT * FROM `publish`;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;-- 方案1&lt;BR&gt;SELECT `id`, `name` &lt;BR&gt;FROM `item`&lt;BR&gt;, (SELECT @T := `content` FROM `publish` WHERE `cid` = 1) tA&lt;BR&gt;WHERE @T LIKE CONCAT('%', `id`, '%');&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;-- 方案2&lt;BR&gt;SELECT tA.`id`, tA.`name` &lt;BR&gt;FROM `item` tA&lt;BR&gt;, `publish` tB&lt;BR&gt;WHERE FIND_IN_SET(tA.`Id`, tB.`content`) &amp;gt; 0&lt;BR&gt;AND tB.`cid` = 1;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;-- 删除测试环境&lt;BR&gt;DROP TABLE `item`;&lt;BR&gt;DROP TABLE `publish`;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;注意，&lt;BR&gt;这两个查询均无法使用 id 列 索引！！&lt;BR&gt;这里的方法并不是推荐的。因为效率比较低，最好的办法是将属性先分隔成一个表，然后再通过 LEFT JOIN 连接。&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL 5.0 正式稳定版今天发布了！！</title><link>http://borland.mblogger.cn/shuixin13/posts/25395.aspx</link><pubDate>Tue, 25 Oct 2005 20:12:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/25395.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/25395.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/25395.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/25395.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=25395</trackback:ping><description>&lt;H2 class=m&gt;MySQL 5.0 Now Available for Production Use&lt;/H2&gt;
&lt;H3&gt;Enterprise Platform Vendors Express Enthusiastic Support for World's Most Popular Open Source Database&lt;/H3&gt;
&lt;H4&gt;Major New Version Delivers Advanced SQL Standard-Compliant Features &lt;BR&gt;Such as Stored Procedures, Triggers, Views &amp;amp; New Pluggable Storage Engines&lt;/H4&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.mysql.com/news-and-events/news/article_976.html" target=_blank&gt;http://www.mysql.com/news-and-events/news/article_976.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BTW：&lt;/P&gt;
&lt;P&gt;为什么使用 MySQL 5.0.15 , MySQL 的服务进程 mysqd.exe 仍是经常出现异常而终止呢？&lt;/P&gt;
&lt;P&gt;:&amp;#8221;) 不会是 RPWT 吧。哈哈。&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>虚拟主机MySQL服务管理方案</title><link>http://borland.mblogger.cn/shuixin13/posts/24127.aspx</link><pubDate>Tue, 13 Sep 2005 10:04:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/24127.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/24127.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/24127.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/24127.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=24127</trackback:ping><description>&lt;P&gt;目前国内大部分服务提供商均不提供 MySQL 远程登陆权限，&lt;BR&gt;这对于数据库的备份与恢复极不方便，&lt;BR&gt;这里我给大家介绍宝刀未老的Windows 图形客户端程序&amp;nbsp;MySQL-Front 3.2&lt;BR&gt;它可以通过一个 PHP 写的 HTTP 代理，&lt;BR&gt;以 localhost 方式登陆 MySQL 服务器&lt;BR&gt;&lt;BR&gt;下载地址 &lt;A href="http://www.mysqlfront.de/"&gt;http://www.mysqlfront.de/&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;MySQL-Front 安装完后，&lt;BR&gt;将安装目录下的 phpMySQL.php 文件上传 WEB 目录中，&lt;BR&gt;然后编辑连接属性，&lt;BR&gt;将连接类型设置为 PHP Tunnel ，&lt;BR&gt;然后在下面的 URI 设置为该 PHP 的地址&lt;BR&gt;&lt;BR&gt;&lt;IMG alt="" src="/upimgs/borland.mblogger.cn/shuixin13/2005-9/2005_913669.jpg"&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQLDriverCS 遭遇中文乱码</title><link>http://borland.mblogger.cn/shuixin13/posts/24087.aspx</link><pubDate>Sat, 10 Sep 2005 10:53:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/24087.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/24087.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/24087.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/24087.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=24087</trackback:ping><description>&lt;P&gt;环境：&lt;/P&gt;
&lt;P&gt;WINDOWS SERVER 2003 英文版&lt;BR&gt;VS.NET 2003&lt;BR&gt;&lt;A href="http://dev.mysql.com/downloads/" target=_blank&gt;MySQL 4.0.18&lt;/A&gt;&lt;BR&gt;MySQLDriverCS &lt;A href="http://sourceforge.net/projects/mysqldrivercs/" target=_blank&gt;MySQLDriverCS-n-EasyQueryTools-3.0.18.exe&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;前些天使用 MySQLDriverCS&amp;nbsp; 写了一个 WEB 应用，&lt;BR&gt;放在英文版的 2003 服务器上，&lt;BR&gt;MySQL 也是安装在这台服务器上的，&lt;BR&gt;&lt;BR&gt;WEB 项目在本地运行没有问题，&lt;BR&gt;可是上传到服务器后，&lt;BR&gt;向数据库里插入的中文数据却全是乱码&lt;BR&gt;字符：? &lt;BR&gt;HEX：3F&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;解决方案：&lt;BR&gt;需要在服务器上一张 2003 系统安装盘，&lt;BR&gt;浏览一个中文网页，然后根据提示安装中文语言支持包，&lt;BR&gt;安装结束后，&lt;BR&gt;打开控制面板里的区域与语言选项，&lt;BR&gt;切换到高级页面，&lt;BR&gt;在非 Unicode 程序的语言项里选择为简体中文，&lt;BR&gt;区域选项也建议全选择为 China&lt;BR&gt;然后重启，OK&lt;BR&gt;&lt;IMG src="/upimgs/borland.mblogger.cn/shuixin13/2005-9/2005_910283.jpg" border=0&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>一个小天使降落到哥哥家</title><link>http://borland.mblogger.cn/shuixin13/posts/24086.aspx</link><pubDate>Sat, 10 Sep 2005 10:28:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/24086.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/24086.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/24086.aspx#feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/24086.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=24086</trackback:ping><description>&lt;P&gt;哈，&lt;BR&gt;前天哥哥打电话告诉我，&lt;BR&gt;生了个小女孩，&lt;BR&gt;过些天过去看看，&lt;BR&gt;给拍几张玉照过来&lt;/P&gt;
&lt;P&gt;：）&lt;/P&gt;
&lt;P&gt;也不知偶的GF什么时候才能回心转意呢 -_-|||&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL 中文全文索引的支持</title><link>http://borland.mblogger.cn/shuixin13/posts/20440.aspx</link><pubDate>Fri, 20 May 2005 09:51:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/20440.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/20440.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/20440.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/20440.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=20440</trackback:ping><description>&lt;P&gt;MySQL 数据库(MySQL 4.1.12 / MySQL 5.0.4)到目前还不支持中文全文检索&lt;BR&gt;所幸的是&lt;A href="http://www.hylanda.com/" target=_blank&gt;天津海量科技&lt;/A&gt;对 MySQL 做了扩展&lt;BR&gt;天津海量科技是CSDN &lt;A href="http://www.csdn.net"&gt;http://www.csdn.net&lt;/A&gt;&amp;nbsp;的全文搜索技术支持方&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE height=160 cellSpacing=0 cellPadding=0 align=center border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;
&lt;STRONG&gt;MySQL Chinese+ &lt;A href="http://www.hylanda.com/cgi-bin/download/download.asp?id=9" target=_blank&gt;&lt;FONT color=#1b89d5&gt;下载&lt;/FONT&gt;&lt;/A&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;海量科技继推出《海量智能分词研究版》之后，利用其独有的智能分词技术推出了《Mysql chinese+》。该产品从根本上解决了以往Mysql数据库不支持中文全文检索的问题，并大幅提升了Mysql的检索性能 &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;
&lt;A href="http://www.hylanda.com/production/mysql.htm" target=_blank&gt;&lt;FONT color=#1b89d5&gt;详细介绍&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;感谢他们.&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL登陆帐号权限的运作</title><link>http://borland.mblogger.cn/shuixin13/posts/20148.aspx</link><pubDate>Fri, 13 May 2005 10:13:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/20148.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/20148.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/20148.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/20148.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=20148</trackback:ping><description>&lt;p style="font-family: courier new;"&gt;&lt;em&gt;依然有人在问我 MySQL 权限设置的问题&lt;br/&gt;下面我把很久前在CSDN写的一个文章帖出来吧.&lt;br/&gt;文中所用的 MySQL 是 3.23.x &lt;br/&gt;虽然 MySQL 发展到现在，&lt;br/&gt;对授权表做了很多改动，&lt;br/&gt;但基本的运作方式并没有太大改变，&lt;br/&gt;如果您是一个初学者，&lt;br/&gt;请一步步地操作下去 ...&lt;/em&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p style="font-family: courier new;"&gt;&lt;br/&gt;当初次在机器上安装完MySQL后，&lt;br/&gt;你通过运行scripts/mysql_install_db安装初始的存取权限。&lt;br/&gt;scripts/mysql_install_db脚本将启动mysqld服务器，&lt;br/&gt;然后初始化授权表，包含下列权限集合：&lt;br/&gt;&amp;nbsp; {WIN32用户不需要使用上述命令，在MySQL安装完后，&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 直接运行mysql/bin/winmysqladmin.exe即可}&lt;/p&gt;
&lt;p style="font-family: courier new;"&gt;当你确定MySQL服务已运行后&lt;br/&gt;请在WINDOWS的MSDOS方式下运行下列指令&lt;br/&gt;c:\mysql\bin&amp;gt;mysql -u root&lt;br/&gt;mysql&amp;gt;use mysql&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;mysql&amp;gt;select * from mysql.user;&lt;br/&gt;+-----------+------+----------+------------+------------...-+------------+&lt;br/&gt;| Host&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | User | Password |Select_priv |Insert_priv ... | ALter_priv |&lt;br/&gt;+-----------+------+----------+------------+------------...-+------------+&lt;br/&gt;| localhost | root |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ....| Y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br/&gt;| %&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | root |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ....| Y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br/&gt;| localhost |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ....| Y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br/&gt;| %&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ....| N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;br/&gt;+-----------+------+----------+------------+------------...-+------------+&lt;br/&gt;4 rows in set (0.00 sec) &lt;/p&gt;
&lt;p style="font-family: courier new;"&gt;&amp;nbsp; 1、MySQL root用户作为可做任何事情的一个超级用户被创造。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 连接必须由本地主机发出。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 注意：新安装系统中的root口令是空的，&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 因此任何人能以root而没有一个口令进行连接并且被授予所有权限。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;&amp;nbsp; 2、一个匿名用户被创造，他可对有一个'test'或以'test_'开始的名字的数据库做任何时期事情，&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 连接必须由本地主机发出。这意味着任何本地用户能连接并且视为匿名用户。 &lt;br/&gt;&amp;nbsp; 3、其他权限被拒绝。&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 例如，一般用户不能使用mysqladmin shutdown或mysqladmin processlist。&lt;/p&gt;
&lt;p style="font-family: courier new;"&gt;在Win32上缺省的权限给所有本地用户以所有数据库的完全权限。&lt;br/&gt;为了使MySQL更安全，&lt;br/&gt;你应该为每个用户设置口令并删除mysql.user中有Host='localhost'和User=''的行。&lt;/p&gt;
&lt;p style="font-family: courier new;"&gt;下面将详细讲解：&lt;/p&gt;
&lt;p style="font-family: courier new;"&gt;你可以匿名进行访问数据库或者以不带口令的root身份进入数据库。&lt;br/&gt;c:\mysql\bin&amp;gt;mysql -u root&lt;br/&gt;你还要进行一些用户的建立及授权，这将涉及到设置密码的问题。&lt;/p&gt;&amp;gt;&amp;gt;&amp;gt;&lt;a href="http://shuixin13.mblogger.cn/posts/20150.aspx"&gt; 点击这里查看全文&lt;/a&gt;&lt;br/&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>挨骂了.</title><link>http://borland.mblogger.cn/shuixin13/posts/16576.aspx</link><pubDate>Tue, 08 Mar 2005 09:51:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/16576.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/16576.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/16576.aspx#feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/16576.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=16576</trackback:ping><description>&lt;P&gt;今日收到一封 E-Mail.:(&lt;/P&gt;
&lt;P&gt;说我翻译的 MySQL 4.1.0 文档是害人的.&lt;/P&gt;
&lt;P&gt;狂郁闷.&lt;/P&gt;
&lt;P&gt;虽然文档翻译中的确有一些句顺不通的地方,&lt;BR&gt;但对于重要的语义解释.我都有仔细推敲过的.&lt;/P&gt;
&lt;P&gt;呵呵.&lt;BR&gt;不提了.&lt;BR&gt;反正目前也没计划再翻译下去了.&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MSSQL中十进制数转化为十六进制字符串</title><link>http://borland.mblogger.cn/shuixin13/posts/14971.aspx</link><pubDate>Tue, 01 Feb 2005 16:11:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/14971.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/14971.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/14971.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/14971.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=14971</trackback:ping><description>&lt;P&gt;好久没来博一下了.&lt;BR&gt;:")&lt;BR&gt;&lt;BR&gt;今天同事突然问我这个问题.&lt;BR&gt;还真的楞了一下.&lt;BR&gt;想来想去好像 MSSQL 中并没有提供 MySQL 类似的 CONV() 函数&lt;BR&gt;就写一个吧.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;CODE&gt;
&lt;P&gt;/*****************************************************************************&lt;BR&gt;* Name: 十进制转为十六进制字符串格式(INTTOHEX)&lt;BR&gt;* Author:　WXQ&lt;BR&gt;* ALTER&amp;nbsp; Date: 2005-02-01&lt;BR&gt;* Last Modified by:&lt;BR&gt;* Last Update Date:&lt;BR&gt;* Version:&lt;BR&gt;* Demo: SELECT dbo.Int2Hex(100000)&lt;BR&gt;* Return: &lt;BR&gt;*****************************************************************************/&lt;/P&gt;
&lt;P&gt;ALTER FUNCTION Int2Hex(@intData int)&lt;BR&gt;RETURNS varchar(10)&lt;BR&gt;AS&lt;BR&gt;BEGIN&lt;BR&gt;&amp;nbsp;DECLARE @ReturnValue varchar(10)&lt;BR&gt;&amp;nbsp;DECLARE @binData binary(4), @intBit int, @intTmp int, @intBit0Tmp int, @intBit1Tmp int &lt;BR&gt;&amp;nbsp;SET @binData = Convert(binary(4), @intData)&lt;BR&gt;&amp;nbsp;SET @ReturnValue = '0x'&lt;BR&gt;&amp;nbsp;SET @intbit = 1&lt;BR&gt;&amp;nbsp;WHILE @intbit &amp;lt;= 4&lt;BR&gt;&amp;nbsp;BEGIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;SET @intTmp = Cast(SubString(@binData, @intbit, 1) as int)&lt;BR&gt;&amp;nbsp;&amp;nbsp;SET @intBit0Tmp = @intTmp % 16&lt;BR&gt;&amp;nbsp;&amp;nbsp;SET @intBit1Tmp = (@intTmp - @intBit0Tmp) / 16&lt;BR&gt;&amp;nbsp;&amp;nbsp;SET @ReturnValue = @ReturnValue &lt;BR&gt;&amp;nbsp;&amp;nbsp; + CASE @intBit1Tmp WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' ELSE Cast(@intBit1Tmp as varchar) END&lt;BR&gt;&amp;nbsp;&amp;nbsp; + CASE @intBit0Tmp WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' ELSE Cast(@intBit0Tmp as varchar) END&lt;BR&gt;&amp;nbsp;&amp;nbsp;SET @intbit = @intbit + 1&lt;BR&gt;&amp;nbsp;END&lt;BR&gt;&amp;nbsp;RETURN @ReturnValue&lt;BR&gt;END&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;补：06年公司要用到这个函数，这下又仔细地想了一下，&lt;BR&gt;给出了新的函数体，效率会更高些：&lt;BR&gt;:-)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*****************************************************************************&lt;BR&gt;* Name: 十进制转为十六进制字符串格式(INTTOHEX)&lt;BR&gt;* Desc:&lt;BR&gt;* Author:　WXQ&lt;BR&gt;* CrtDate: 2006-02-27&lt;BR&gt;* Modify:&lt;BR&gt;* ModifyDate:&lt;BR&gt;* Memo: &lt;BR&gt;* Demo: SELECT dbo.Int2Hex(100000)&lt;BR&gt;* Return:&lt;BR&gt;*&lt;BR&gt;* 调用者：&lt;BR&gt;&amp;nbsp;&lt;BR&gt;*****************************************************************************/&lt;/P&gt;
&lt;P&gt;CREATE FUNCTION Int2Hex(@intData int)&lt;BR&gt;RETURNS varchar(10)&lt;BR&gt;AS&lt;BR&gt;BEGIN&lt;BR&gt;&amp;nbsp;DECLARE &lt;BR&gt;&amp;nbsp;&amp;nbsp; @b0 int&lt;BR&gt;&amp;nbsp;, @b1 int&lt;BR&gt;&amp;nbsp;, @b2 int&lt;BR&gt;&amp;nbsp;, @b3 int&lt;BR&gt;&amp;nbsp;, @b4 int&lt;BR&gt;&amp;nbsp;, @b5 int&lt;BR&gt;&amp;nbsp;, @b6 int&lt;BR&gt;&amp;nbsp;, @b7 int&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;SELECT &lt;BR&gt;&amp;nbsp;&amp;nbsp; @b0 = (@intData &amp;amp; 0x0000000F)&lt;BR&gt;&amp;nbsp;, @b1 = (@intData &amp;amp; 0x000000F0) /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 16&lt;BR&gt;&amp;nbsp;, @b2 = (@intData &amp;amp; 0x00000F00) /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 256&lt;BR&gt;&amp;nbsp;, @b3 = (@intData &amp;amp; 0x0000F000) /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4096&lt;BR&gt;&amp;nbsp;, @b4 = (@intData &amp;amp; 0x000F0000) /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 65536&lt;BR&gt;&amp;nbsp;, @b5 = (@intData &amp;amp; 0x00F00000) /&amp;nbsp;&amp;nbsp; 1048576&lt;BR&gt;&amp;nbsp;, @b6 = (@intData &amp;amp; 0x0F000000) /&amp;nbsp; 16777216&lt;BR&gt;&amp;nbsp;, @b7 = (@intData &amp;amp; 0x70000000) / 268435456&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;IF @intData &amp;lt; 0&lt;BR&gt;&amp;nbsp;BEGIN&lt;BR&gt;&amp;nbsp;&amp;nbsp;SET @b7 = @b7 | 0x00000008&lt;BR&gt;&amp;nbsp;END&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;RETURN &lt;BR&gt;&amp;nbsp;'0x'&lt;BR&gt;&amp;nbsp;+ CASE WHEN @b7&amp;gt;=10 THEN (CASE @b7 WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' END) ELSE CAST(@b7 as varchar) END&lt;BR&gt;&amp;nbsp;+ CASE WHEN @b6&amp;gt;=10 THEN (CASE @b6 WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' END) ELSE CAST(@b6 as varchar) END&lt;BR&gt;&amp;nbsp;+ CASE WHEN @b5&amp;gt;=10 THEN (CASE @b5 WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' END) ELSE CAST(@b5 as varchar) END&lt;BR&gt;&amp;nbsp;+ CASE WHEN @b4&amp;gt;=10 THEN (CASE @b4 WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' END) ELSE CAST(@b4 as varchar) END&lt;BR&gt;&amp;nbsp;+ CASE WHEN @b3&amp;gt;=10 THEN (CASE @b3 WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' END) ELSE CAST(@b3 as varchar) END&lt;BR&gt;&amp;nbsp;+ CASE WHEN @b2&amp;gt;=10 THEN (CASE @b2 WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' END) ELSE CAST(@b2 as varchar) END&lt;BR&gt;&amp;nbsp;+ CASE WHEN @b1&amp;gt;=10 THEN (CASE @b1 WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' END) ELSE CAST(@b1 as varchar) END&lt;BR&gt;&amp;nbsp;+ CASE WHEN @b0&amp;gt;=10 THEN (CASE @b0 WHEN 10 THEN 'A' WHEN 11 THEN 'B' WHEN 12 THEN 'C' WHEN 13 THEN 'D' WHEN 14 THEN 'E' WHEN 15 THEN 'F' END) ELSE CAST(@b0 as varchar) END&lt;/P&gt;
&lt;P&gt;END&lt;/P&gt;&lt;/CODE&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>哈.买到了N-GAGE QD了</title><link>http://borland.mblogger.cn/shuixin13/posts/13447.aspx</link><pubDate>Mon, 27 Dec 2004 14:32:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/13447.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/13447.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/13447.aspx#feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/13447.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=13447</trackback:ping><description>&lt;P&gt;因为不喜欢听音乐,&lt;BR&gt;所以就选上了全中文的 QD &lt;BR&gt;&lt;BR&gt;周六25号,&lt;BR&gt;苏州石路的苏宁开业.&lt;BR&gt;QD入网价&amp;nbsp;￥2022 + 80&amp;nbsp;&lt;BR&gt;心动中.&lt;BR&gt;再仔细一看.还有返现 ￥150，&lt;BR&gt;另送礼品 550毫安电池一块&lt;BR&gt;&lt;BR&gt;嗯&lt;BR&gt;玩了一天多了，&lt;BR&gt;平静地想了想，&lt;BR&gt;感觉 QD 也是有爽的，&lt;BR&gt;有见过别人的 欧版 N-GAGE&lt;BR&gt;他的屏幕的视角比 大陆行版QD 要大很多。&lt;BR&gt;玩QD时间长了不太爽...&lt;/P&gt;
&lt;P&gt;更要命的是我的那个充电器。&lt;BR&gt;第一次充电时，&lt;BR&gt;有些高频啸叫声，&lt;BR&gt;第二次使用时，&lt;BR&gt;这声音更响了。&lt;BR&gt;怕怕中....&lt;/P&gt;
&lt;P&gt;去客服问了，&lt;BR&gt;说要寄到广州去检测，&lt;BR&gt;需要两周时间，&lt;BR&gt;期间不提供代用机，甚至是代用充电器。&lt;BR&gt;无语中， 感受苏州的客服好差... :_(&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>使用 mysqladmin 修改用户密码出错的原因</title><link>http://borland.mblogger.cn/shuixin13/posts/12433.aspx</link><pubDate>Fri, 03 Dec 2004 10:49:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/12433.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/12433.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/12433.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/12433.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=12433</trackback:ping><description>&lt;P&gt;今天CSDN上有人发消息给我&lt;BR&gt;说他使用下面的语句修改用户密码出错.&lt;/P&gt;
&lt;P&gt;mysqladmin?-u?root?password?'mypassword'&lt;BR&gt;&lt;BR&gt;呵呵.&lt;BR&gt;在 WINDOWS 下应该使用双引号,而不是单引号.&lt;BR&gt;单引号会被视为密码的一部分&lt;/P&gt;
&lt;P&gt;?&lt;/P&gt;&lt;CODE&gt;
&lt;P&gt;Microsoft Windows 2000 [Version 5.00.2195]&lt;BR&gt;(C) 版权所有 1985-2000 Microsoft Corp.&lt;/P&gt;
&lt;P&gt;F:\mysql\bin&gt;mysqladmin -h localhost -u root password '123'&lt;/P&gt;
&lt;P&gt;F:\mysql\bin&gt;mysql -h localhost -u root -p123&lt;BR&gt;ERROR 1045 (28000): Access denied for user &lt;A href="mailto:'root'@'localhost'"&gt;'root'@'localhost'&lt;/A&gt; (using password: Y&lt;BR&gt;ES)&lt;/P&gt;
&lt;P&gt;F:\mysql\bin&gt;mysql -h localhost -u root -p'123'&lt;BR&gt;Welcome to the MySQL monitor.? Commands end with ; or \g.&lt;BR&gt;Your MySQL connection id is 5 to server version: 5.0.1-alpha-nt&lt;/P&gt;
&lt;P&gt;Type 'help;' or '\h' for help. Type '\c' to clear the buffer.&lt;/P&gt;
&lt;P&gt;mysql&gt;&lt;/P&gt;&lt;/CODE&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>为记录集添加记录号(MySQL 的变量初始化)</title><link>http://borland.mblogger.cn/shuixin13/posts/11624.aspx</link><pubDate>Fri, 19 Nov 2004 12:20:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/11624.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/11624.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/11624.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/11624.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=11624</trackback:ping><description>&lt;P&gt;在 MySQL 中,&lt;BR&gt;为了在返回的记录集上添加一个记录号.&lt;BR&gt;可以用下面的语句:&lt;/P&gt;
&lt;P&gt;SELECT @COUNT:=CEILING(COUNT(`RId`)/2) FROM `tA`;&lt;BR&gt;SELECT @Id:=-1;&lt;BR&gt;SELECT @Id := @Id + 1 Id, @Id%@COUNT PageIndex, `RId` FROM `tA` ORDER BY `RId`;&lt;/P&gt;
&lt;P&gt;讨厌的是.它是由多条语句实现的.&lt;BR&gt;怎么样才能把它合并成一条语句呢?&lt;/P&gt;
&lt;P&gt;呵呵,使用 MySQL 4.1 版. 它支持了子查询&lt;BR&gt;就可以很容易的实现了.&lt;BR&gt;&lt;BR&gt;SELECT&lt;BR&gt;&amp;nbsp; (@Id := @Id + 1) Id&lt;BR&gt;&amp;nbsp; , @Id%@COUNT PageIndex&lt;BR&gt;&amp;nbsp; , `RId`&lt;BR&gt;FROM `tA`&lt;BR&gt;&amp;nbsp; , &amp;nbsp;(SELECT @Id := -1) tB&lt;BR&gt;&amp;nbsp; ,&amp;nbsp;&amp;nbsp;(SELECT @COUNT:=CEILING(COUNT(KSBH)/2) FROM `tA`) tC&lt;BR&gt;ORDER BY `tA`.`RId`;&lt;/P&gt;
&lt;P&gt;把初始化的 SELECT 语句放在主语句的 FROM 子句中.&lt;BR&gt;MySQL&amp;nbsp;在执行该语句时.&lt;BR&gt;会先初始化 FROM 子句中的 SELECT 数据源,&lt;BR&gt;这样就会有一个全局的 @Id 用户变量&lt;BR&gt;也就实现了用户变量的提前初始化,&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;再来看下面的一句&lt;/P&gt;
&lt;P&gt;SELECT&lt;BR&gt;&amp;nbsp; @Id:=IF(@Id IS NULL, 0, @Id) Id&lt;BR&gt;&amp;nbsp; ,&amp;nbsp;@Id := @Id +1 Id2&lt;BR&gt;FROM `tA`;&lt;/P&gt;
&lt;P&gt;+-----+-----+&lt;BR&gt;|&amp;nbsp;Id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;Id2&amp;nbsp; |&lt;BR&gt;+-----+-----+&lt;BR&gt;| 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;| 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;| 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;BR&gt;+-----+-----+&lt;BR&gt;&lt;BR&gt;由于 @Id 这个用户变量是在行内定义的.&lt;BR&gt;所以它的作用域只会在单条记录中有效.&lt;BR&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>鼠与羊</title><link>http://borland.mblogger.cn/shuixin13/posts/11201.aspx</link><pubDate>Fri, 12 Nov 2004 13:46:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/11201.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/11201.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/11201.aspx#feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/11201.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=11201</trackback:ping><description>&lt;P&gt;昨天朋友们有说&lt;/P&gt;
&lt;P&gt;鼠与羊是不可以在一起的.&lt;/P&gt;
&lt;P&gt;果真是这样子的吗?&lt;/P&gt;
&lt;P&gt;搜索了一下.竟真有此一说.&lt;/P&gt;
&lt;P&gt;我无语了..&lt;/P&gt;
&lt;P&gt;随它去吧...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BTW:&lt;/P&gt;
&lt;P&gt;刚才父亲打电话过来.&lt;BR&gt;狠狠地训了我一顿.&lt;BR&gt;什么年代了还相信这一套.&lt;/P&gt;
&lt;P&gt;:-)&lt;/P&gt;
&lt;P&gt;哈哈,&lt;BR&gt;其实也没相信,&lt;BR&gt;只是最近心情不太好罢了.&lt;BR&gt;又听人一说.&lt;BR&gt;就晕晕了.&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>好的心情是要重新开始的...</title><link>http://borland.mblogger.cn/shuixin13/posts/11181.aspx</link><pubDate>Fri, 12 Nov 2004 09:34:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/11181.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/11181.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/11181.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/11181.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=11181</trackback:ping><description>&lt;P&gt;绝不被现实所吓倒.&lt;/P&gt;
&lt;P&gt;绝不轻言失败.&lt;/P&gt;
&lt;P&gt;绝不可不乐观.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;我已然是开心的犬犬 ...&lt;IMG src="http://messenger.msn.com/Resource/emoticons/regular_smile.gif"&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>夜. 雨夜. 心爱的本本被盗了.特郁闷..手机信用卡留下了.超级庆幸...</title><link>http://borland.mblogger.cn/shuixin13/posts/11117.aspx</link><pubDate>Thu, 11 Nov 2004 09:12:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/11117.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/11117.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/11117.aspx#feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/11117.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=11117</trackback:ping><description>&lt;P&gt;在这一个月里.&lt;/P&gt;
&lt;P&gt;心爱之物接连离我而去.&lt;/P&gt;
&lt;P&gt;为什么.?&lt;/P&gt;
&lt;P&gt;本想有本本可以与MM一起学习....&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/cry_smile.gif"&gt;&lt;/P&gt;
&lt;P&gt;手机没有被带走.&lt;/P&gt;
&lt;P&gt;保存在手机里GF的QQ号呀什么的也都在&lt;/P&gt;
&lt;P&gt;看来只记得MM的手机号是不行的了.&lt;/P&gt;
&lt;P&gt;:"(&lt;/P&gt;
&lt;P&gt;唉.&lt;/P&gt;
&lt;P&gt;人生最哀莫过于心死.&lt;/P&gt;
&lt;P&gt;人生最痛莫过于心不能死.&lt;/P&gt;
&lt;P&gt;既然还能联系MM.&lt;BR&gt;我就不应该轻言放弃.&lt;/P&gt;
&lt;P&gt;对吗?&lt;/P&gt;
&lt;P&gt;BTW:&lt;/P&gt;
&lt;P&gt;NB &lt;A href="http://www.ithaier.com/notebook/H271&amp;amp;273.htm"&gt;海尔 H271&lt;/A&gt;&amp;nbsp;&amp;nbsp; 五一买的.花了近10K :"(&lt;/P&gt;
&lt;P&gt;那盗竟没有将充电器带走. 特笨. &lt;BR&gt;看来那本本在不懂的人手里要受折磨了.:"(&lt;BR&gt;幸好没有加开机密码.&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>WinForm ComboBox 数据绑定时区分大小写</title><link>http://borland.mblogger.cn/shuixin13/posts/10849.aspx</link><pubDate>Sat, 06 Nov 2004 10:36:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/10849.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/10849.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/10849.aspx#feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/10849.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=10849</trackback:ping><description>
&lt;STYLE type=text/css&gt;
&lt;!--
.style1 {font-size: 12px}
--&gt;
&lt;/STYLE&gt;
&lt;SPAN class=style1&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;Friend WithEvents&lt;/FONT&gt; cbUrlList &lt;FONT color=#0000ff&gt;As&lt;/FONT&gt; System.Windows.Forms.ComboBox&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;Private Sub&lt;/FONT&gt; FillUrlList()&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;Dim&lt;/FONT&gt; Dt &lt;FONT color=#0000ff&gt;As New&lt;/FONT&gt; DataTable&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;Dim&lt;/FONT&gt; Dr &lt;FONT color=#0000ff&gt;As&lt;/FONT&gt; DataRow&lt;BR&gt;&amp;nbsp;&amp;nbsp; Dt.Columns.Add("UrlId", &lt;FONT color=#0000ff&gt;GetType&lt;/FONT&gt;(&lt;FONT color=#0000ff&gt;Integer&lt;/FONT&gt;))&lt;BR&gt;&amp;nbsp;&amp;nbsp; Dt.Columns.Add("Url", &lt;FONT color=#0000ff&gt;GetType&lt;/FONT&gt;(&lt;FONT color=#0000ff&gt;String&lt;/FONT&gt;))&lt;BR&gt;&amp;nbsp;&amp;nbsp; Dr = Dt.NewRow&lt;BR&gt;&amp;nbsp;&amp;nbsp; Dr.Item("UrlId") = -1&lt;BR&gt;&amp;nbsp;&amp;nbsp; Dr.Item("Url") = "请选择"&lt;BR&gt;&amp;nbsp;&amp;nbsp; Dt.Rows.Add(Dr)&lt;BR&gt;&amp;nbsp;&amp;nbsp; cbUrlList.DataSource = Dt&lt;BR&gt;&amp;nbsp;&amp;nbsp; cbUrlList.DisplayMember = "Url"&lt;BR&gt;&amp;nbsp;&amp;nbsp; cbUrlList.ValueMember = "UrlID"&lt;BR&gt;&lt;FONT color=#0000ff&gt;End Sub&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff1493&gt;上面代码运行出错&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;未处理的&amp;#8220;System.ArgumentException&amp;#8221;类型的异常出现在&lt;BR&gt;system.windows.forms.dll中。&lt;BR&gt;&lt;BR&gt;其它信息：无法绑定到新的值成员。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;将上面的最后三行代码换成下面的任一种形式这样就可以了.&lt;BR&gt;&lt;BR&gt;1: 把数据源放在最后绑定&lt;BR&gt;&lt;BR&gt;cbUrlList.DisplayMember = "Url"&lt;BR&gt;cbUrlList.ValueMember = "UrlID"&lt;BR&gt;cbUrlList.DataSource = Dt&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;2: 严格区分大小写&lt;BR&gt;&lt;BR&gt;cbUrlList.DataSource = Dt&lt;BR&gt;cbUrlList.DisplayMember = "Url"&lt;BR&gt;cbUrlList.ValueMember = "UrlId"&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;　&lt;/P&gt;&lt;/SPAN&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>MySQL4.1 稳定版发布</title><link>http://borland.mblogger.cn/shuixin13/posts/10280.aspx</link><pubDate>Thu, 28 Oct 2004 09:28:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/10280.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/10280.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/10280.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/10280.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=10280</trackback:ping><description>&lt;P&gt;MySQL4.1 稳定版发布&lt;/P&gt;
&lt;P&gt;这下可以安心地使用子查询了.&lt;/P&gt;
&lt;P&gt;更多的特性可以参见&lt;/P&gt;
&lt;P&gt;支持子查询&lt;BR&gt;更快更安全的 client-server 连接&lt;BR&gt;新的安装与设置工具&lt;BR&gt;支持国际字符集和地理数据&lt;/P&gt;
&lt;P&gt;MySQL Version 4.1 Certified as Production-Ready&lt;/P&gt;
&lt;P&gt;&lt;A href=http://www.mysql.com/news-and-events/press-release/release_2004_32.html target=_blank&gt;http://www.mysql.com/news-and-events/press-release/release_2004_32.html&lt;/A&gt;&lt;/P&gt;</description></item><item><dc:creator>非犬犬</dc:creator><title>手机 SMS PDU 格式参考手册 </title><link>http://borland.mblogger.cn/shuixin13/posts/10089.aspx</link><pubDate>Tue, 26 Oct 2004 09:15:00 GMT</pubDate><guid>http://borland.mblogger.cn/shuixin13/posts/10089.aspx</guid><wfw:comment>http://borland.mblogger.cn/shuixin13/comments/10089.aspx</wfw:comment><comments>http://borland.mblogger.cn/shuixin13/posts/10089.aspx#feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://borland.mblogger.cn/shuixin13/comments/commentRss/10089.aspx</wfw:commentRss><trackback:ping>http://borland.mblogger.cn/shuixin13/trackback.aspx?ID=10089</trackback:ping><description>&lt;DIV class=Section1 style="LAYOUT-GRID:  15.6pt none"&gt;
&lt;DIV align=center&gt;
&lt;TABLE class=MsoTableGrid cellSpacing=0 cellPadding=0 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=Normal width=509&gt;
&lt;P class=MsoTitle align=center&gt;&lt;FONT size=20&gt;开发者指南&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P class=MsoTitle align=center&gt;&lt;A name=_Toc86589134&gt;&lt;FONT size=20&gt;SMS with the SMS PDU-mode&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=Default style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN style="FONT-SIZE: 16pt; FONT-FAMILY: 宋体"&gt;翻译整理&lt;/SPAN&gt;: &lt;SPAN style="FONT-SIZE: 16pt; FONT-FAMILY: 宋体"&gt;犬犬&lt;/SPAN&gt;(&lt;SPAN style="FONT-SIZE: 16pt; FONT-FAMILY: 宋体"&gt;心帆&lt;/SPAN&gt;)&lt;/P&gt;
&lt;P class=Default style="TEXT-ALIGN: center" align=center&gt;E-Mail: &lt;A href="mailto:shuixin13@163.com"&gt;shuixin13@163.com&lt;/A&gt;&lt;/P&gt;
&lt;P class=Default style="TEXT-ALIGN: center" align=center&gt;&lt;SPAN style="FONT-SIZE: 16pt; FONT-FAMILY: 宋体"&gt;最后修定日期&lt;/SPAN&gt;: 2004-10-18&lt;/P&gt;&lt;BR style="PAGE-BREAK-BEFORE: always" clear=all&gt;
&lt;P class=MsoToc1&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589134"&gt;SMS with the SMS PDU-mode&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;. &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;1&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589135"&gt;编者序&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 3&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589136"&gt;版本变动历史&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 4&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589137"&gt;1、绪论&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 5&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589138"&gt;2、缩写词&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 6&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589139"&gt;3、设置指令&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 7&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589140"&gt;3.1 服务中心号码&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(+CSCA)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;7&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589141"&gt;3.2 选择消息服务&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(+CSMS)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;7&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589142"&gt;3.3 选择消息格式&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(+CMGF)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;8&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589143"&gt;4、SMS文本模式&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 9&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589144"&gt;5、SMS PDU模式&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 9&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589145"&gt;5.1 发送方SMS-Submit (Mobile Originated)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; 9&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc4&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589146"&gt;5.1.1 向SIM卡存储区写入一条SMS&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(+CMGW)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;9&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc4&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589147"&gt;5.1.2 发送SIM卡存储区中的一条SMS&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(+CMSS)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;10&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc4&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589148"&gt;5.1.3 直接从终端设置发送SMS&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(+CMGS)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;11&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589149"&gt;5.2 接收方 SMS-DELIVER (Mobile Terminated)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; 12&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc4&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589150"&gt;5.2.1 列取消息&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(+CMGL)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;12&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc4&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589151"&gt;5.2.2 读取消息&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(+CMGR)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;12&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc4&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589152"&gt;5.2.3 删除消息&lt;SPAN style="COLOR: windowtext; TEXT-DECORATION: none"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(+CMGD)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;13&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589153"&gt;6、SMS PDU 基本组成元素&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 13&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589154"&gt;6.1 发送方PDU格式SMS-SUBMIT-PDU (Mobile Originated)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; 14&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589155"&gt;6.2 接受方PDU格式 SMS-DELIVER-PDU (Mobile Terminated)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; 14&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589156"&gt;6.3 SCA 短消息服务中心地址格式&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;15&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589157"&gt;6.4 PDU Type（第一个八位位组）&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;16&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589158"&gt;6.5 MR 信息参考 (Message Reference)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;17&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589159"&gt;6.6 DA/OA 接收方地址与发送方地址&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;17&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589160"&gt;6.7 PID 协议标识 (Protocol-Identifier)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;18&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589161"&gt;6.8 DCS 数据编码方案 (DataCoding-Scheme)&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;18&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589162"&gt;6.9 VP 信息有效期（Validity Period）&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;19&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589163"&gt;6.10 SCTS 服务中心时间戳（Service Center TimeStamp）&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;19&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589164"&gt;6.11 UDL 用户数据长度 (User-Data-Length (Amount of Characters))&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; 19&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589165"&gt;7、常用 AT 指令&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 20&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589166"&gt;8、PDU操作实例&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 20&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589167"&gt;8.1 准备工作&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;20&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589168"&gt;8.2 连接手机&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;21&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589169"&gt;8.3 发送PDU SMS&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;. &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;21&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589170"&gt;9、SMS 编码方案与编程实现&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 24&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc2&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589171"&gt;附&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 26&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589172"&gt;Message service error&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;26&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589173"&gt;error codes:&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt; &lt;/SPAN&gt;&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;26&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoToc3&gt;&lt;SPAN class=MsoHyperlink&gt;&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_Toc86589174"&gt;默认的字符表&lt;SPAN style="DISPLAY: none; COLOR: windowtext; TEXT-DECORATION: none"&gt;... 28&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR style="PAGE-BREAK-BEFORE: always" clear=all&gt;
&lt;H2&gt;&lt;A name=_Toc86589135&gt;&lt;SPAN style="FONT-FAMILY: 黑体"&gt;编者序&lt;/SPAN&gt;&lt;/A&gt;&lt;/H2&gt;
&lt;P class=MsoBodyText&gt;前些天QQ上 Delphi群里的有人做手机SMS相关的项目，我就把本本中的所有资料都传给了他，可他还是有好些不明白的地方，可能是我的文档不是太清晰，以致误人子弟了吧！狂汗中！-_-|||&lt;/P&gt;
&lt;P class=MsoBodyText&gt;这个文章是出于2003-08，那时我正在山东做项目，也是有关手机SMS通信方面的，因为手上只有英文资料，而组中的成员需要中文资料，因而有了它了。&lt;/P&gt;
&lt;P class=MsoBodyText&gt;再次打开这个文档，手触键盘时不禁感慨万千！&lt;/P&gt;
&lt;P class=MsoBodyText&gt;2003-07-08，我由南京去山东，正值学生放暑假，这一天竟只买到了一张站票去河南的商丘！1566次沪开郑，16车，22：30时，这一天，这一时，上天将我推到了一个女孩身边。当第一眼遇着她那眼睛时，我凝滞了，就如很久未见的好友，突然间的相逢，感觉是那么得亲切而没有隔阂，那时我从心底的最深处笑了。:&amp;#8221;)&lt;/P&gt;
&lt;P class=MsoBodyText&gt;这一夜我站到了清晨，终是斗胆地与她要了E-Mail，好怕怕，因为如果不这样子的话，我知我是一定会后悔的。其它已不敢再多问什么，至少我已知道了她是从苏州上车，应该是在苏州上学的了。:-)&lt;/P&gt;
&lt;P class=MsoBodyText&gt;到了山东后，给她去了好些Mail，可一封都没有回复，一切都消失了。上天既然将我推到她面前，为什么又如此快地收回呢？好后悔当时为什么不再问她的姓名，她的电话，或是她的学校&amp;#8230;&amp;#8230;&lt;/P&gt;
&lt;P class=MsoBodyText&gt;8-20号，项目文档整理完毕。&lt;/P&gt;
&lt;P class=MsoBodyText&gt;23号，终于回到了南京，辞去工作，休息一天后，我于25号到了苏州，一个陌生的城市，一丝丝的兴奋，一丝丝的沉忧&amp;#8230;&amp;#8230;&lt;/P&gt;
&lt;P class=MsoBodyText&gt;&amp;#8230;&amp;#8230;&lt;/P&gt;
&lt;P class=MsoBodyText&gt;十月六号这一天，上天竟是如此地厚爱我，竟让我找到了她&amp;#8230;&amp;#8230;&lt;/P&gt;
&lt;P class=MsoBodyText&gt;&amp;#8230;&amp;#8230;&lt;/P&gt;
&lt;P class=MsoBodyText&gt;一年了，我们相识了很多，如今的我，心情已平静，她在努力着她的学业，我奋斗着我的工作，我们间会有真正地交集吗？我不知道&amp;#8230;&amp;#8230;&lt;/P&gt;
&lt;P class=MsoBodyText&gt;随缘吧&lt;/P&gt;
&lt;P class=MsoBodyText&gt;随缘而来&lt;/P&gt;
&lt;P class=MsoBodyText&gt;随缘而去&lt;/P&gt;
&lt;P class=MsoBodyText&gt;多年后，至少我们会说：我不后悔，因为我们曾经努力过，也曾开心着&amp;#8230;&amp;#8230;&lt;/P&gt;
&lt;P class=MsoBodyText style="TEXT-ALIGN: right" align=right&gt;犬犬&lt;/P&gt;
&lt;P class=MsoBodyText style="WORD-BREAK: break-all; TEXT-ALIGN: right" align=right&gt;2004-10-19 0:56:40&lt;/P&gt;
&lt;P class=MsoBodyText style="TEXT-ALIGN: right" align=right&gt;于苏州&lt;/P&gt;
&lt;H2&gt;&lt;A name=_Toc86589136&gt;&lt;SPAN style="FONT-FAMILY: 黑体"&gt;版本变动历史&lt;/SPAN&gt;&lt;/A&gt;&lt;/H2&gt;
&lt;P class=MsoBodyText&gt;2003-08-20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 第一版&lt;/P&gt;
&lt;P class=MsoBodyText&gt;2004-10-18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="FONT-FAMILY: 宋体"&gt;修订第二版&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 修正&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_6.6_DA/OA_接收方地址与发送方地址"&gt;6.6 DA/OA 接收方地址与发送方地址&lt;/A&gt; 协议格式翻译错误&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 增加AT指令介绍&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 增加&lt;A href="http://shuixin13.mblogger.cn/posts/10087.aspx#_8、PDU操作实例"&gt;8、PDU操作实例&lt;/A&gt;&lt;/P&gt;&lt;/DIV&gt;</description></item></channel></rss>
