[MySQL] outer join 使用

之前我遇到問題,有兩個表格 a 跟 b,分別利用 id 當作連接,當你使用 where a.id = b.id 的時候,當 b 資料表沒有對應到的時候,撈出來的資料就會少一筆,問題如下
: 想請教各位大大, : 如果我現在有兩個table t1,t2 : Table t1: : uid INT : name NCHAR(10) : Table t2: : uid INT : t1_id INT 參考到t1.uid : 我下一個SQL query: : SELECT t1.name, COUNT(t2.uid) : FROM t1,t2 : WHERE t2.t1_id=t1.uid : GROUP BY t1.name : 這樣會計算出每個t1.name項目在t2中所出現的次數。 : 但是如果次數為零時就不會顯示出來。 : 想請教大家,怎樣修改可以讓次數為零的t1.name也顯示出來呢?
解決方法:就是利用 outer join
$sql = "SELECT t1.t_name, count(t2.uid) as aa FROM " . $xoopsDB->prefix('teacher') . " as t1 LEFT OUTER JOIN " . $xoopsDB->prefix('student') . " as t2  on t1.tid = t2.st_teacher group by t1.t_name";
Xoops 寫法

[MySQL] 內建函式 MySQL Replace 功能

今天老師寄信給我,說我轉移的 journal.CN 的文章,出現以前的文章,不能看到圖片,我去查了一下,發現 AMS 文章系統的編輯軟體,相當爛,它的插入圖片,竟然是用絕對網址,然後他會先讀取 mainfile.php 裡面的
define('XOOPS_URL', 'http://journal.cn.ee.ccu.edu.tw');
然後把圖片的網址寫死,而不是動態的,就是利用相對路徑,所以我利用了 replace 的功能來解決全部文章圖片的問題,語法如下
update `xoops_ams_text` set `hometext` = replace(`hometext`,'140.123.107.38/~cnews','journal.cn.ee.ccu.edu.tw');
上面是說,取代 hometext 這個欄位的,找到 140.123.107.38/~cnews 取代成 journal.cn.ee.ccu.edu.tw 這語法相當好用,大家可以嘗試看看,畢竟如果用 php 的 replace 語法,還要利用陣列方式,比較麻煩

[生活日記]星期一的網路安全期末報告

這星期一,是我這學期最後一科期末的 project 了,這個 project,因為老師說可以用錄影的方式,不然怎麼 demo,把所有學生抓去我 lab 看嗎?好像也不是,所以老師才說用影片最快,不過我看大家的期末報告,都弄投影片而已,好像沒啥看到影片,跟實做方面,而我們這組,晚上花了一個多小時吧,錄製好影片,拿到課堂上放,裡面還蠻多搞笑的地方,不過真的就是我們 demo 的實際過程,最後果然我們拿到第一分,最後期末成績的50%,我們拿了滿分,所以我總成績為 39 + 50 = 89分,這是我上大學以來最高分的時候了,還蠻開心的。

[BCB] 如何利用連結 MySQL 5以上跟 MSSQL Server

這兩天開始玩 BCB 的這東西,其實我原本就有打算要學一套視窗軟體,畢竟好像還不錯,可以寫寫軟體,所以就拿了 BCB 來學習。 剛開始想說寫個要跟 MSSQL 資料庫的統計圖,發現 BCB 並不支援 MSSQL,解決方式,當然就是拿 Delphi 的元件 利用 Delphi 7 的 MSSQL Driver Update 內的「dbexpmss.dll」 Copy 到「 $(BCB)\BIN 」 然後在設定 dbxconnections.ini
[MSSQL] GetDriverFunc=getSQLDriverMSSQL LibraryName=dbexpmss.dll VendorLib=oledb HostName=ServerName DataBase=Database Name User_Name=user Password=password BlobSize=-1 ErrorResourceFile= LocaleCode=0000 MSSQL TransIsolation=ReadCommited OS Authentication=False
然後再來是 MySQL5,原本的 BCB 並不支援 MSQL5 所以自己另外找了文章 http://www.justsoftwaresolutions.co.uk/delphi/dbexpress_and_mysql_5.html

[MySQL] 取代部份字串問題

剛剛在 ptt 遇到之前當兵的工作同事,話說他要去中華電信工作了,還真是不錯,他在 database 版問一個取代的問題,然後我幫他找一下答案,解決了,這可以用 sql 語法解決,或者是用程式都可以 問題:
在MySQL 我有大約50000筆資料 有個欄位像這樣 0040000001~0040050000 現在因故要把 004改成005 變成像這樣 0050000001~0050050000
我的解法:
UPDATE `test` SET `test` = CONCAT( '005', SUBSTRING( `test` , 4 ) )  WHERE
SUBSTRING( `test` , 1, 3 ) = '004'
有更快解法嗎? REPLACE 好像不行,因為後面數字也會被改到,不過還是主要用 SUBSTRING

[Proftpd] 如何讓 /bin/false 跟 /sbin/nologin 連上 Proftpd

昨天遇到這個問題,不過其實之前就有解決過這問題,只是忘記怎麼解決,之前是利用 MySQL 的方式建立帳號,因為相當方便,請參考這篇 [Linux] Ubuntu 6.06 Proftpd + Mysql 安裝方式,支援 /bin/false 跟 /sbin/nologin 也相當簡單 只要在 proftpd.conf 加上
RequireValidShell on
官網寫的 config_ref_RequireValidShell 然後在編輯 /etc/shells 加上
/sbin/nologin

[生活日記] 新的一年,去老闆家吃飯

這學期,算是正式結束了,因為老師的電腦網路結構考試,在昨天就考完了,這學期呢,過的相當快,不知不覺,又過了半年,在這學期,我學習到相當多東西,不管是課業上,還是跟同學之前的相處,或者是meeting,我自己都要達到我自己想學的東西,所以我很開心,而寒假了,不知道能不能多充實一下自己,我想利用 Borland C++ Builder 來寫一套統計軟體,搭配 MSSQL ,不過這已經偏離本 blog 的宗旨,所以我不在這裡多說了,這學期呢,在實驗室相處的相當不錯,我怎麼覺得,我跟碩二的很熟,跟碩一的好像就還好,哈哈,不過沒關西啦,跟誰熟都一樣,不過大家都跟我說,我給別人的感覺,就是很沉默很恐怖,然而相處之後,才發現我很好聊,真囧。 再來呢,昨天去老闆家裏吃飯,我是負責買火鍋料,跟疆母鴨,不過因為大家怕我亂買,所以多派一個人跟我去買,囧,orz,沒辦法,哈哈,在買火鍋料得時候,買好,我們再去全聯買飲料,由於我不喝飲料,所以我用公款買了一罐檸檬的比非多,哈哈,就是養樂多啦,很好喝,在吃飯的時候,老闆還問我,誰買那個的,囧,大家都指向我,呼呼哈,買好之後,去老闆家,我一整個很餓,不過要先等 lab 女生炒菜,我都快餓死了,經過一小時之後,終於好了,在吃飯過程,大家都在聊天,講八卦,講這個還好,但是幾乎都是在講我的八卦,還有我的家人,囧,都一直講我,然後還討論我的 blog,大家還對我真好奇阿,呼呼,在這過程,老師一直開酒,呼呼,度爛名跟宗翰一直狂喝,我在想老師心在淌血吧,哈哈,好險,我不喝酒的,所以我沒喝,我還是乖乖一直喝我的比非多,哈,酒還是不要碰好了,畢竟他不會甜,喝 ice 我還ok,就這樣,吃到晚上快12點,囧,回到家都一點多了,原本想說打給蚊子,看她傷口有沒有好一點,不過我怕他在睡覺,所以先傳一下簡訊,結果蚊子沒有回我簡訊,一直到今天早上我才收到簡訊,真是好險,昨天沒打電話過去,不然就吵到我最喜歡的蚊子了 話說,這頓飯,我最喜歡吃的部份,就是前菜,因為我不喜歡吃將母鴨,將母鴨的味道,都不會甜,所以我吃前菜吃很多,吃三碗飯,然後火鍋都沒什麼吃,看來下次要吃羊肉爐了,哈。