2010-08-11 14 views
93

जब मैं इस SQL ​​क्वेरी निष्पादित करें:Mysql छंटनी की गई गलत डबल मूल्य

UPDATE shop_category 
SET name = 'Secolul XVI - XVIII' 
    AND name_eng = '16th to 18th centuries' 
WHERE category_id = 4768 

मैं निम्न त्रुटि प्राप्त:

1292 - Truncated incorrect DOUBLE value: 'Secolul XVI - XVIII' 

'shop_category' तालिका संरचना:

category_id mediumint(8) 
name  varchar(250) 
name_eng  varchar(250) 

कैसे कर सकते हैं मैं इसे ठीक करता हूँ?

धन्यवाद।

+8

कमाल है कि यह कैसे तुच्छ है और इसके परिणामस्वरूप कितना आसान है याद आती है। यह पूछने के लिए धन्यवाद। –

+1

क्या यह किसी भी तरह से निर्धारित है कि इस त्रुटि संदेश का असली अर्थ क्या है, और किस मामले में यह दिखाया गया है? चूंकि यह उन संदर्भों में होता है जहां एक डबल मान शामिल नहीं होता है, ऐसा लगता है कि यह कुछ भ्रामक लगता है। – syck

+0

मान लें कि यह पहले से 'सिकोलुल XVI - XVIII' के बुलेन मूल्य की गणना करने का प्रयास करता है। –

उत्तर

136

आपको AND कीवर्ड की आवश्यकता नहीं है। यहाँ correct syntax of the UPDATE statement है:

UPDATE 
    shop_category 
SET 
    name = 'Secolul XVI - XVIII', 
    name_eng = '16th to 18th centuries' 
WHERE 
    category_id = 4768 
+2

वास्तव में मुझे कंप्यूटर को दीवार पर फेंकने से पहले यह जवाब मिला – rbennell

+2

इसलिए निश्चित रूप से मेरे जैसे लोगों के हिस्से पर मूर्खता, यह गलती करते हुए, 'गलत ग़लत मूल्य काट' एक बहुत बेकार चेतावनी संदेश है ... – rbennell

+0

भगवान का शुक्र है मैंने यह जवाब देखा, मैं बेवकूफ हूँ। – watchzerg

8

,

UPDATE shop_category 
SET name = 'Secolul XVI - XVIII', name_eng = '16th to 18th centuries' 
WHERE category_id = 4768 

AND साथ UPDATE Syntax शो विभाजक के रूप में इस्तेमाल किया जाना चाहिए अल्पविराम के बजाय ऐसे।

50

मुझे इस अपवाद को कॉमा के बजाए और नहीं मिला था, असल में मुझे यह अपवाद इसलिए था क्योंकि मैं क्लॉज में apostrophes का उपयोग नहीं कर रहा था। जहां where column2 in ('00012121'); को खंड फिर क्वेरी मेरे लिए ठीक काम किया जब मैं बदल

मेरी क्वेरी की तरह

update table set coulmn1='something' where column2 in (00012121); 

था।

+1

+1 यह भी मेरा मुद्दा था, धन्यवाद :-) – AlexP

+1

मेरे लिए एक ही मुद्दा! मैं एक सीआरएम में एक टेबल को अपडेट करने का प्रयास कर रहा था जो 1 अन्य उपयोगकर्ताओं के लिए व्यवस्थापक उपयोगकर्ता के उपयोगकर्ता आईडी और 36 चार guids के रूप में उपयोग करता है। मेरा उद्धरण के बिना, उपयोगकर्ता_आईडी को 1 के रूप में निर्दिष्ट कर रहा था। मुझे लगता है कि यह mysql से सख्त मोड में है। –

+3

@danny_mulvihill मुझे विश्वास है कि आप सही रास्ते पर हैं। मेरे पास 'sql_mode' में' STRICT_TRANS_TABLES' सेट था और 'जहां' खंड में एक संख्यात्मक मान में एक संख्यात्मक मान के साथ सीमित फ़ील्ड को अपडेट करने का प्रयास किया गया था। मोड बदलना, इसके बजाय एक चेतावनी फेंक दी, लेकिन अभी भी अद्यतन लागू नहीं किया। निकट निरीक्षण पर, जहां खंड में उपयोग किया गया कॉलम, केवल पूर्णांक मानों के बावजूद, वास्तव में एक 'वर्कर (20) ' –

1
$up="UPDATE users1 SET user_fname='$fname' and user_lname='$lname' where user_emp_code=$emp"; 

को दूर करने और , साथ and बदलने के बाद अपने ठीक काम कर रहा:

$up="UPDATE users1 SET user_fname='$fname', user_lname='$lname' where user_emp_code=$emp";

-4

मैं एक ही त्रुटि हो रही थी और कहा कि "," दो स्तंभ मानों के बीच की जगह के बाद और साथ हल किया गया था।

अद्यतन TRANSFORMERDATA सेट TRANSFORMERNAME = 'DummyXmer.jar', टिप्पणी = 'DummeyXmer' कहां GENERATEDRUNID = 'DB1-DB2RYTSYFGWTY8966'

+4

पहले से ही 4 उत्तरों को कवर किया गया है। – bummi

3

मुख्य रूप से अवैध क्वेरी स्ट्रिंग यह चेतावनी दे देंगे ध्यान न दें।

एक सूक्ष्म सिंटेक्स त्रुटि (गलत दायां कोष्ठक) की वजह से गलत

जब INSTR फ़ंक्शन का उपयोग:

INSERT INTO users (user_name) SELECT name FROM site_users WHERE 
INSTR(status, 'active'>0); 

सही:

INSERT INTO users (user_name) SELECT name FROM site_users WHERE 
INSTR(status, 'active')>0; 
0

मैं सिर्फ इस पर अपना समय बर्बाद और जोड़ना चाहते थे एक अतिरिक्त मामला जहां यह त्रुटि स्वयं प्रस्तुत करती है।

SQL Error (1292): Truncated incorrect DOUBLE value: 'N0003' 

टेस्ट डेटा

CREATE TABLE `table1 ` (
    `value1` VARCHAR(50) NOT NULL 
); 
INSERT INTO table1 (value1) VALUES ('N0003'); 

CREATE TABLE `table2 ` (
    `value2` VARCHAR(50) NOT NULL 
); 

INSERT INTO table2 (value2) 
SELECT value1 
FROM table1 
WHERE 1 
ORDER BY value1+0 

समस्या ORDER BY value1+0 है - प्रकार कास्टिंग।

मुझे पता है कि यह सवाल का जवाब नहीं है, लेकिन यह इस त्रुटि के लिए गूगल पर पहले परिणाम है और यह होना चाहिए अन्य

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