使用python對mysql表做全域性模糊搜尋並分頁

2021-10-04 07:46:24 字數 1457 閱讀 7542

在寫django專案的時候,有的資料沒有使用模型管理(資料表是動態新增的),所以要直接使用mysql。前端請求資料的時候可能會指定這幾個引數:要請求的頁號,頁大小,以及檢索條件。

"""

tablename: 表名

pagenum: 請求的頁的編號

pagesize: 每一頁的大小

searchinfo: 需要全域性查詢的資訊

"""def

getmysqldata

(tablename, pagenum, pagesize, searchinfo)

:# 使用mysqldb獲取的mysql游標

cursor = getcursor(

)# 用以獲取列標題

colsql =

'select * from {} limit 1'

.format

(tablename)

cursor.execute(colsql)

columns =

[col[0]

for col in cursor.description]

# 轉化查詢資訊為sql

searchcondition =

','.join(columns)

searchinfo =

"where concat({}) like '%{}%'"

.format

(searchcondition, searchinfo)

# 用以獲取總數

totalsql =

"select count(*) from {} {};"

.format

(tablename, searchinfo)

cursor.execute(totalsql)

total = cursor.fetchone()[

0]# 用以獲取具體資料

limit1 =

(pagenum -1)

* pagesize

limit2 = pagesize

datasql =

"select * from {} {} limit {},{};"

.format

(tablename, searchinfo, limit1, limit2)

cursor.execute(datasql)

data =

[dict

(zip

(columns, row)

)for row in cursor.fetchall()]

return

(total, columns, data)

""" total: 符合條件的資料總數

columns: 欄位名列表

['欄位名1', '欄位名2', ...]

data: 資料物件列表

[,, ...]

"""

使用python批量建立 mysql 表

import mysqldb 開啟資料庫連線 這是虛擬機器對映為網路資料庫 db mysqldb.connect 192.168.1.11 hive hive yewu001 port 3306,charset utf8 ip 使用者名稱 密碼 database 埠port 字元編碼 使用curso...

python對mysql的操作

安裝好了 mysqldb並將其移動到site packages裡面,我們在程式便可以呼叫了。1.與資料庫建立連線 import mysqldb try cxn mysqldb.connect host localhost user root passwd root db python except ...

建立使用mysql表

1.展示所有資料庫 show databases 2.選中資料庫 use database name 3.建立資料庫 create database database name 4.使用2選中資料庫 5.建立表 create table test test name varchar 20 creat...