各位先進,想請問一下,如何在某個資料庫中找到某特定字串呢?
例如:我想在ABC資料庫中,找「林志玲」這個名字;但我不知道它在哪個資料表的哪個欄位中。
以往我的作法是先整個倒出成一個.sql檔,再用文字編輯器去尋找該字串,再往上找它屬於哪一個資料表...(土法煉鋼啦)
今天突然想到,可以請教各位熱心的先進,一定有更快的方法...
對了,小弟手上有的工具是 Navicat,以及 phpMyAdmin 這兩種,都是有圖形及指令介面的,先謝謝各位的回答,謝謝!
可以先參考看看我之前寫的文章
小程式-Oracle&C#全表格查詢搜尋單一值 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
主要原理
1.運用跟一級屠豬士大大說的一樣information_schema表格取得所有表格的欄位資料
2.拼接sql並運行判斷有沒有資料 (使用or來拼接一次查詢)
3.假如使用select count(1) from 表格
判斷會遇到效能問題,要使用exists
總結上述三點會得到的sql語句:
select case when (
exists(
select null
from {表格名稱xxx}
where {欄位名稱A} = {搜尋的值} or {欄位名稱B} = {搜尋的值} or {欄位名稱C} = {搜尋的值} .....
)
) then 1 else 0 end value
假如晚一點還沒有高手大大解決
我再寫一個Mysql版本給你