1-3

2013-02-14 18 views
27

के बीच यादृच्छिक संख्या के साथ MySQL अद्यतन एक बड़ी तालिका मिली और मैं एक कॉलम जोड़ना चाहता हूं जिसमें प्रत्येक रिकॉर्ड के लिए यादृच्छिक रूप से चुनी गई संख्या हो। 1, 2, या 3.1-3

कठिन समय होने के बाद। कोई विचार? RAND के लिए MySQL documentation से

UPDATE tableName SET columnName = FLOOR(1 + RAND() *3); 

:

+5

0 से यादृच्छिक नाव मूल्यों का उत्पादन [क्या आप की कोशिश की है उदाहरण के लिए, सीमा रेंज 1<= R < 3, निम्न कथन का उपयोग में एक यादृच्छिक पूर्णांक प्राप्त करने के लिए? ] (http://www.whathaveyoutried.com/) देखें [सलाह पूछें] (http://stackoverflow.com/questions/ask-advice), कृपया। –

+0

http://stackoverflow.com/questions/6550155/mysql-get-a-random-value-between-two-values ​​ – sgeddes

+0

आपने 'अद्यतन' और 'रैंड() 'की कोशिश नहीं की है? – tadman

उत्तर

98

इस प्रयास करें

रेंज 0 < = वी < 1.0 में एक यादृच्छिक फ़्लोटिंग-बिंदु मान वी देता है।

तो ऊपर क्वेरी में, सबसे बड़ा मान जो 1 + RAND()*3 द्वारा उत्पन्न किया जा सकता है 3.999999, जो जब फिदा 3. देना होगा सबसे छोटा मान घटित होता है जब RAND() रिटर्न 0, जिस स्थिति में यह 1 देना होगा होगा।

-3

इस

UPDATE tableName SET columnName = FLOOR(RAND() + RAND()); 
0

उपयोग RAND() समारोह करो। यह 0 <= v < 1.0 श्रेणी में एक यादृच्छिक फ़्लोटिंग-पॉइंट मान v देता है। i <= R < j श्रेणी में एक यादृच्छिक पूर्णांक आर प्राप्त करने के लिए, FLOOR(i + RAND() * (j − i)) अभिव्यक्ति का उपयोग करें।

UPDATE tableName 
SET ColumnName= FLOOR(1 + rand() * 3); 

एनबी::RAND() 1.

संबंधित मुद्दे