2012年4月18日 星期三

[MySQL]使用正則表達式(REGEXP)的用法

[MySQL]使用正則表達式(REGEXP)的用法


練習

需求說明:
                 有多筆資料,每筆有多種商品代號碼(如:AAA,BBB,AAA_BBB)
                 每種商品用此附號 ( , )分開,
                 請找出商品代號為AAA的資料。
語法如下:

SELECT*
FROM
(#測試資料
      SELECT "AAA,BBB,CCC,DDD,EEE,AAA_BBB" AS number
      UNION ALL
      SELECT "AAA_BBB,CCC_DDD,EEE_AAA_BBB" AS number
      UNION ALL
      SELECT "AAA_BBB_CCC,DDD_EEE,AAA_BBB" AS number
      UNION ALL
      SELECT "BBB,CCC_DDD,EEE_AAA_BBB,AAA" AS number
      UNION ALL
      SELECT "CCC_DDD,EEE_AAA_BBB" AS number
      UNION ALL
      SELECT "CCC_DDD" AS number
      UNION ALL
      SELECT "AAA" AS number
      )AS testData
where testData.number REGEXP '[[:<:]]AAA[[:>:]]' > 0;#判斷語法

UNION ALL 的用法

結果如下:
會將有AAA的商品找出來,而上述的第二筆中的AAA_BBB,是不會背找出來的。



其它用法如下:



參考資料:
G MySQL Regular Expressions

http://dev.mysql.com/doc/refman/5.1/en/regexp.html


以下轉貼
來源:八克里-正規表示式 Regular expressions 使用在 mysql 的 sql 查詢


正規表示式 Regular expressions 使用在 mysql 的 sql 查詢
果然是各殺手級的應用
mysql RE用法
http://dev.mysql.com/doc/refman/5.1/en/regexp.html

測試 RE
http://osteele.com/tools/rework/

RFC email正規表示
http://www.regular-expressions.info/email.html

官方網站的例子是這樣的
mysql> SELECT 'a word a' REGEXP '[[:<:]]word[[:>:]]'; -> 1
mysql> SELECT 'a xword a' REGEXP '[[:<:]]word[[:>:]]'; -> 0
字串的比對透過 RE 比對後得到 ture or flase 兩種結果
結果應用在 where 查詢上面,就可以找到符合我們描述字串的東西了
WHERE phone REGEXP '(435)';
會用到這個功能原因是,在原始的資料檔案中在email這個欄位,因為是大批的匯入系統
但使佣者在建立的時候,每個人的格式不同創造出了眾多的 email表達方式,又剛好要用到這些
email來發電子文宣,只好用 RE 來做簡單的 email過濾了.....

需要兩個校友的資料,以 .CSV 檔案
1.有email的校友,學號,姓名,email 且 email 合乎 REF 標準

SELECT `sid`,`username`,`email` FROM `data` WHERE `email` regexp '^[[:alnum:]]+@([[:alnum:]\.{1,}])+\.[a-z]{2,3}$' ;

2.有地址的校友,學號,姓名,郵遞區號,地址,地址做簡單的過濾
SELECT `username`,`register_zip`,`register_addr` FROM `data`
where register_zip AND register_addr REGEXP '高雄|高市|台南|高縣';

2012年4月15日 星期日

[Grails](groovy)--如何實作將下載頁面程式及解決下載檔案名稱亂碼問題

[Grails](groovy)--如何實作將下載頁面程式及解決下載檔案名稱亂碼問題

程式如下:

def file = new File(params.fileDir)    
response.setContentType("application/octet-stream")
response.setHeader("Content-disposition", "attachment;filename=${file.getName()}")

response.outputStream << file.newInputStream() // Performing a binary stream copy


如果你使用Firefox browser ,你的下載程式如果有檔案名稱為中文及檔案名稱中有空白,會不正常。
改程式如下:


def file = new File(params.fileDir)  
def fileName = file.getName()
response.setContentType("application/octet-stream")
response.setHeader("Content-disposition", "attachment;filename=\""+ 
new String( fileName.getBytes("big5"), "ISO8859-1" )+ "\"")
response.outputStream << file.newInputStream() // Performing a binary stream copy








參考資料:
Grails File Download

Groovy Grails, How do you stream or buffer a large file in a Controller's response

grails sending-a file to the browser


標籤

Oracle (150) Oracle DB (144) Oracle_DB (143) Oracle SQL (135) JAVA (84) css-基本類 (65) MySQL (59) CSS Selector (58) jQuery (49) JavaScript-基本類 (39) Spring Boot (38) JavaScript (37) JavaScript HTML DOM (37) JavaScript-HTML_DOM (36) CSS3 (30) JAVA-基本類 (28) jQuery UI (27) Apache (23) Oracle GROUP BY (20) datepicker (20) Android (18) Oracle Date (17) c (17) JAVA-lang套件 (16) Linux (16) Oracle Sub Query (16) Spring-基本類 (16) jQuery-基本類 (16) MySQL-進階系列教學 (15) Android基本類 (14) Grails (14) Oracle join (14) SQLite (13) Spring (13) WIN7-基本類 (13) grails-基本類 (13) linux cent os (13) CKEditor (12) JAVA-流程控制類 (12) JAVA_Spring (12) PHP (11) Spring MVC (11) MySQL-基本系列教學 (10) Notepad (10) Notepad++ (10) SQLite for java (10) Windows (10) c/c++ (10) eclipse (9) jQuery-Selector (9) sqldeveloper (9) DB_Toad (8) JAVA_IDE_Eclipse (8) JavaScript-String類 (8) MySQL DB Toad (8) MySQL-DATE相關 (8) MySQL-函式相關 (8) Spring Bean (8) Android Studio (7) HTML5 (7) Hibernate (7) JAVA-OCWCD (7) JavaScript-陣列類 (7) Docker (6) JAVA-程式分享 (6) JAVA.util套件 (6) JavaScript-數學類 (6) MinGw (6) MySQL-其它類 (6) Servlet (6) centos (6) Apache_Tomcat (5) Apache套件_POI (5) CSS (5) JavaScript-Date物件 (5) JavaScript-其它類 (5) PostgreSQL (5) httpd (5) log4j (5) 基本資訊 (5) 開發工具 (5) CSS Properties (4) Dev-C++ (4) IntelliJ IDEA (4) Oracle DDL (4) Sublime (4) TortoiseSVN (4) apache_Maven (4) Android NDK (3) Eclipse IDE for C/C++ (3) Hibernate-基本類 (3) JAVA-問題 (3) JAVA-綀習分享 (3) JVM (3) Linux 指令 (3) Proxy Server (3) Spring Mobile (3) Spring web (3) Squid (3) VirtualBox (3) maven (3) zk (3) 生活其它 (3) Bootstrap (2) Filter (2) JAVA_IO (2) JAVA_其它_itext套件 (2) JBoss-問題 (2) JSP (2) Jboss (2) Listener (2) MySQL-語法快速查詢 (2) Spring AOP (2) Spring Batch (2) Spring Boot Actuator (2) Spring i18n (2) Subversive (2) Tomcat 8 (2) UML (2) WebJars (2) WinMerge (2) c++ (2) c語言綀習題 (2) jQuery Mobile (2) jQuery-事件處理 (2) jQuery-套件類 (2) putty (2) svn (2) weblogic (2) Apache_JMeter (1) Apache套件_BeanUtils (1) Apache套件_StringUtils (1) Base64 (1) Google API (1) HTML5-基本類 (1) Heap (1) JAVA 7 (1) JAVA SE 、JAVA EE、JAVA ME (1) JAVA 日期 (1) JAVA-OCJP (1) JAVA-WEB (1) JAVA_IDE (1) JAVA其它 (1) JBoss Server (1) JDK (1) JMX (1) JRE (1) Java RMI (1) Java String (1) Joda Time (1) Linux_其它 (1) MySQL教學 (1) Oracle_VirtualBox (1) SQL Server (1) SWT (1) Session (1) Stack (1) Struts 2 (1) Tool (1) ZK Studio (1) csv (1) grails-其它類 (1) jQuery-進階 (1) java mail (1) java web (1) java8 (1) jsoup (1) mockmvc (1) modules (1) tomcat (1) win10 (1) 其它類 (1) 圖片工具 (1) 模擬器 (1) 讀書分享 (1) 開發資訊 (1)

精選文章

初學 Java 的 HelloWorld 程式

撰寫一個JAVA程式 public class HelloWorld{ public static void main(String[ ] args){ System.out.println("我第一支Java程式!!"); } } ...