Найти - Пользователи
Полная версия: проблемы с mysql
Начало » Базы данных » проблемы с mysql
1
niro
Задача - получить случайную запись из базы данных

def get_random():
import MySQLdb,random
con = MySQLdb.connect(host = “localhost”,user = “root”,db = “db”)
cur = con.cursor()
cur.execute('select max(id) from table')
maxid = cur.fetchone()
sel = int(random.uniform(1,maxid+1))
cur.execute('set names utf8;')
cur.execute('select col,col1 from table where id=%s'%sel)
result = cur.fetchone()
cur.close()
con.close()
return result

В результате получается путаница с ячейками, запрашивается одно, а получается разное.
slivlen
А не проще средствами субд это сделать?
 select * from table order by rand() limit 1;
niro
Через мускульный клиент результат правильный, через python рельтат неправильный
niro
проблема решена, ошибка была не в функции а в запросе к ней
вызов был таков

x1= get_random()
x2 = get_random()

а правильно
rand = get_random()
x1 = rand
x2 = rand

пошел убиваться о стенку…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB