假設兩個表a,b,b中通過欄位id與a表關聯,a表與b表為一對多的關係。假設b表中存在一欄位name,現需要查詢a表中的記錄,同時擷取儲存在b表中的name資訊,按照常規查詢,b表中有多少記錄,則會顯示多少行,如果需要只顯示a表記錄行數,則需要把查詢name欄位得到的多行記錄進行合并,可以通過程式實現,但也可直接在sql層完成。方法:利用group_concat()方法,參數為需要合并的欄位,合并的欄位分隔符號預設為逗號,可通過參數separator指定,該方法往往配合group by
假設表中有一個欄位time,格式為Unix時間戳記,現需要按照該欄位統計每天的記錄數。方法:利用convert函數convert(char(10),time,120) as time,然後group by time即可。原理:convert函數將時間戳記轉換成ODBC標準時間(120參數指定),然後取前十位,則剛好得到完整日期(不含時分秒),再分組即可。按月,按年分組方法一樣,只需要修改convert()方法第一個參數的長度。
Mysql mysql lost connection to server during query 問題解決方案緣由: 在查詢Mysql中的資料庫,或者修改比較大的表的時候就會出現這種情況;google之:方案1.在mysql設定檔[myslqd]下面添加一行設定skip-name-resolve.需要重啟mysql服務.方案2.在hosts檔案內添加: ip與主機名稱的映射關係,如: 127.0.0.1 localhost. 這種方式不用重啟mysql服務.-----------------
MySQL添加欄位:alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid` (在哪個欄位後面添加)刪除欄位:alter table `user_movement_log` drop column Gatewayid調整欄位順序:ALTER TABLE `user_movement_log` CHANGE `GatewayId` `GatewayId` int not
同事報告一起奇怪的現象,一個最簡單的測試PHP代碼,在測試環境很正常,但是在正式環境下,無論用何種方式(tcp/ip、unix socket)都無法串連mysql。我協助查看了下,確實如此,無論是指定IP、連接埠的tcp/ip方式串連,或者是用unix socket方式串連,報錯資訊都類似:複製代碼 代碼如下:Could not connect: Can't connect to MySQL server on 'MYSQL.SERVER' (13)無論如何修改MySQL的授權,或者調整php.
@echo off title mysql ::從註冊表找到Mysql的安裝路徑寫入檔案mysql.txt reg query HKLM\SYSTEM\ControlSet001\Services\MySQL | find /I "ImagePath">C:\mysql.txt if %errorlevel% neq 0 ( echo MySQL not found pause exit ) ::以”為分隔字元,截取第二段內容儲存到變數mysqlPath FOR /F tokens^=2^
使用歎號(!)禁止使用者終端進入的一個方法。複製代碼 代碼如下:mysql> grant all privileges on wubx.* to ‘wubx'@'172.16.100.185′ identified by ‘fd52!wubx&,';Query OK, 0 rows affected (0.00 sec)mysql>quit;#mysql -h 172.16.100.185 -u wubx -pfd52!wubx&,-bash: !wubx@,: event not
今天接到一個朋友電話說是覺的資料庫被別人更改了,出現資料不對的問題 。經過很久的排查是資料類型溢出了(發生問題的版本是MySQL 5.1)。後來通過給朋友那邊把MySQL 5.1升級到MySQL 5.5去解決這個問題。 這也讓我有興趣去瞭解一下MySQL不同版本資料類型溢出的處理機制。先看一下MySQL支援的整型數及大小,儲存空間: pe Storage Minimum Value Maximum Value 儲存大小
眾所周知,在MySQL中,如果直接 ORDER BY RAND() 的話,效率非常差,因為會多次執行。事實上,如果等值查詢也是用 RAND() 的話也如此,我們先來看看下面這幾個SQL的不同執行計畫和執行耗時。首先,看下建表DDL,這是一個沒有顯式自增主鍵的InnoDB表:複製代碼 代碼如下:[yejr@imysql]> show create table t_innodb_random\G*************************** 1. row ***************