有沒有辦法用萬用字元選擇列.
喜歡選擇名稱型別可能是』select%type%from table_name』的列?
解決方法:
並不是的.您可以使用* column wildcard選擇所有列.如果要連線多個表,則可以通過在表*或別名前加上*來選擇特定表中的所有列:
select a.id, a.title, b.*
from articles as a
join blurbs as b on a.id = b.article
但是,除非您正在編寫資料庫管理程式,否則不應使用*.
或者,您可以通過獲取表元資料來獲取列名,從而在sql或其他語言中構建語句.使用mysql,您可以查詢information_schema資料庫中的columns表以獲取列名稱,並使用group_concat來構建語句的列列表.
select concat(
'select ',
group_concat(column_name separator ', '),
' from ', :db, '.', :table,
' where ...'
from information_schema.columns
where table_schema=:db and table_name=:table
用適當的值替換「:db」,「:table」和「…」.您甚至可以將其轉換為預準備語句,以便將其用於任何表.從那裡,prepare和execute構建的宣告.
如果您不僅限於sql程式設計,那麼它應該不那麼混亂.您選擇的語言的db驅動程式可能提供獲取元資料的方法.實際的實現類似於純sql方法(獲取列名,彙編語句,準備,執行),但不應該如此醜陋,因為您將使用演算法而不是宣告性語言.
我非常有興趣看到實際需要的情況.
標籤:mysql,wildcard
mysql萬用字元 mysql萬用字元使用
mysql萬用字元使用 w3cchool sql模式匹配 匹配單個字元,匹配 匹配任意個字元,包括零個字元 sql模式下的匹配,預設是對於字母的大小寫沒有要求,並且sql模式下,或 是不能在模糊匹配中使用的,而是使用 like 或 not like.例如 select from user where...
Mysql 萬用字元原理 MySQL 萬用字元學習小結
mysql 萬用字元 sql的模式匹配允許你使用 匹配任何單個字元,而 匹配任意數目字元 包括零個字元 在 mysql中,sql的模式預設是忽略大小寫的。下面顯示一些例子。注意在你使用sql模式時,你不能使用 或 而使用like或not like比較操作符。為了找出以 b 開頭的名字 mysql s...
sql like 萬用字元 mysql萬用字元使用
sql模式匹配 匹配單個字元,匹配 匹配任意個字元,包括零個字元 sql模式下的匹配,預設是對於字母的大小寫沒有要求,並且sql模式下,或 是不能在模糊匹配中使用的,而是使用 like 或 not like.例如 正則模式匹配 當使用正則匹配時,使用regexp和not regexp操作符 或rli...