select * from information_schema.COLUMNS where COLUMN_NAME='love';
資料庫information_schema里有存表的各種信息
Ⅱ 如何使用mysql的全文索引搜索
你有沒有想過如何使用搜索功能在所有整站中實現!互聯網博客和網站,大多數都採用MySQL資料庫。MySQL提供了一個美妙的方式實施一個小的搜索引擎,在您的網站(全文檢索)。所有您需要做的是擁有的MySQL 4.x及以上。MySQL提供全文檢索功能,我們可以用它來 ??實現搜索功能。
首先,讓我們為我們的例子中設置一個示例表。我們將創建一個名為第一個表。
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
);
在此表中還可以添加一些示例數據。執行後,插入查詢。
INSERT INTO articles (title,body) VALUES
('MySQL Tutorial','DBMS stands for DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
('MySQL vs. YourSQL','In the following database comparison ...'),
('MySQL Security','When configured properly, MySQL ...');
一旦樣本數據是准備好,我們可以開始我們的全文檢索功能。
自然語言全文搜索
嘗試我們的示例表上執行下面的SELECT查詢。
SELECT * FROM articles
WHERE MATCH (title,body) AGAINST ('database');
你就能看到結果如下:
在下面的資料庫比較5 MySQL與YourSQL的...
MySQL教程DBMS 1代表資料庫...
我們在上面的SQL查詢(標題,正文)反對(「資料庫」)的比賽,選擇所有的記錄,列標題和正文進行全文搜索。
您可以修改該查詢,並創建您自己的版本,以自己的資料庫中執行全文搜索。
布爾全文搜索
它可能發生,你要指定某些關鍵字在您的搜索條件。此外,您可能要忽略某些關鍵字。布爾全文搜索可以用來執行這些要求的全文檢索。
檢查下面的SELECT查詢。
SELECT * FROM articles WHERE MATCH (title,body)
AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);
如果您發現上述選擇查詢,我們增加了布爾MODE反對()。這個查詢將獲取MySQL的關鍵字,但不YourSQL關鍵字的所有記錄。請注意+和-我們以前指定的關鍵字!
在執行此功能,MySQL使用什麼有時也被稱為布爾邏輯作為暗示,其中:+代表與-代表不是[無操作員]暗示或
以下是幾個例子布爾搜索條件。
「蘋果香蕉
查找行至少包含兩個詞之一。
「+蘋果+果汁」
尋找包含兩個單詞的行。
「+蘋果Macintosh
查找行包含「蘋果」,但排名的行,如果它們也包含「麥金塔」。
「+蘋果Macintosh的」
查找行包含「蘋果」這個詞,而不是「麥金塔」。
'+蘋果Macintosh的「
查找包含單詞「蘋果」的行,但如果該行也包含單詞「麥金塔」,速度比如果行不低。這是「軟」比「+蘋果Macintosh電腦」,為「麥金塔」的存在,導致該行不能在所有返回的搜索。
'+蘋果+(>營業額<餡餅)「
行包含「蘋果」和「營業額」,或「蘋果」和「餡餅」(任何順序)的話,但排名「蘋果的營業額」比「蘋果餡餅「。
限制
支持全文檢索的MyISAM表只。MySQL 4.1中,使用多個字元設置一個單一的表內的支持。然而,在一個FULLTEXT索引的所有列,必須使用相同的字元集和校對規則。MATCH()列列表必須匹配完全在一些列清單表的FULLTEXT索引定義,除非這場比賽()是在布爾模式。布爾模式搜索,可以做非索引列,雖然他們很可能是緩慢的。
Ⅲ PHP lucene 結合實現對mysql資料庫的全文搜索,求前輩指點
你的意圖是什麼?是從資料庫層面建立索引,如對資料庫的關聯表建立索引,每次全文檢索時,直接從索引庫進行檢索,不再對資料庫進行最大模糊匹配,是吧?這樣的話,建議查看Solr+關系資料庫操作
Ⅳ mysql怎樣查詢一個表中所有數據
輸出所有的欄位及不使用謂詞如distinct,limit等、不分組匯總、不附加任何篩選條件和實施任何連接即可檢索出該表的所有數據。
例如下列語句:
select * from t1(* 號表示輸出所有的欄位)
Ⅳ Lucene可以對MYSQL進行全文檢索嗎
Lucene是可以的,它常見的用例就是在一個或者多個資料庫表進行全文檢索。 雖然MySql有全文檢索的功能,但是如果欄位和數據量增加,MySql的性能會減低很快。
Ⅵ 搞定MySQL資料庫中文模糊檢索問題
在MySQL下,在進行中文模糊檢索時,經常會返回一些與之不相關的記錄,如查找“%a%”時,返回的可能有中文字元,卻沒有a字元存在。本人以前也曾遇到過類似問題,經詳細閱讀MySQL的Manual,發現可以有一種方法很方便的解決並得到滿意的結果。
例子:
希望通過“標題”對新聞庫進行檢索,關鍵字可能包含是中英文,如下SQL語句:
QUOTE:
select
id,title,name
from
achech_com.news
where
title
like
'%a%'
返回的結果,某些title欄位確定帶了“a”關鍵字,而有些則只有中文,但也隨之返回在檢索結果中。
解決方法,使用BINARY屬性進行檢索,如:
QUOTE:
select
id,title,name
from
achech_com.news
where
binary
title
like
'%a%'
返回的結果較之前正確,但英文字母區分大小寫,故有時在檢索如“Achech”及“achech”的結果是不一樣的。知道了使用BINARY屬性可以解
決前面這個問題,再看看MySQL支持的UCASE及CONCAT函數,其中UCASE是將英文全部轉成大寫,而CONCAT函數的作用是對字元進行連
接,以下是我們完全解決後的SQL語句:
QUOTE:
select
id,title,name
from
achech_com.news
where
binary
ucase(title)
like
concat('%',ucase('a'),'%')
檢索的步驟是先將屬性指定為BINARY,以精確檢索結果,而被like的title內容存在大小寫字母的可能,故先使用ucase函數將欄位內容全部
轉換成大寫字母,然後再進行like操作,而like的操作使用模糊方法,使用concat的好處是傳進來的可以是直接的關鍵字,不需要帶“%”萬用符,
將“'a'”直接換成你的變數,在任何語言下都萬事無憂了。當然你也可以這么寫:
QUOTE:
select
id,title,name
from
achech_com.news
where
binary
ucase(title)
like
ucase('%a%')
檢索的結果還算滿意吧,不過速度可能會因此而慢N毫秒。
Ⅶ mysql 怎麼搜索一個資料庫中的所有表
show
tables
可以顯示當前資料庫下的所有表。
但是如果你想要查找特定的表
可能不大容易實現。
如果前綴都為a
可以試試
show
table
like
'a%';
Ⅷ 怎麼用mysql查詢全表最大欄位值的數據
select * from 表 order by 要最大值的欄位 desc limit 0,10
Ⅸ MYSQL 的全文檢索 MATCH()AGAINST
目前,MySQL全文檢索不支持中文和日文。