programing

MySQL 데이터베이스에 DECIAL을 삽입하는 방법

goodsources 2023. 9. 28. 08:21
반응형

MySQL 데이터베이스에 DECIAL을 삽입하는 방법

몇 개의 필드가 있는 데이터베이스 테이블을 가지고 있는데, 그 중 하나입니다.cost, 로 설정되어 있습니다.DECIMAL자료형.매개 변수를 다음과 같이 설정했습니다.4,2, 소수점 앞에는 4개의 숫자를 허용하고, 그 뒤에는 2개의 숫자를 허용해야 합니다.

(나는 그들이 그들었어요.4이것은 총 금액이고, 그리고.210진수 뒤에 있는 금액인데, 옆에 메모해 둔 것 좀 정리해 주시겠어요?)

POST 요청을 통해 데이터를 삽입하는 경우(값)3.80예를 들어) 내 데이터베이스에 저장된 데이터는 실제로99.99.

내가 뭘 잘못해서 이런 일을 일으키는 거지?

여기 표가 있습니다.

CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(256) NOT NULL,
`cost` decimal(4,2) NOT NULL,
PRIMARY KEY (`id`)
)

추가 쿼리는 다음과 같습니다.

INSERT INTO mytable (`id`,`title`,`cost`) 
VALUES (0, 'test title', '3.80')

업데이트 : 4,2를 6,2로 변경한 후에 작동합니다.

MySql 10진수 유형은 소수점의 왼쪽과 오른쪽보다 조금 더 복잡합니다.

첫 번째 인수는 총 자릿수인 정밀도입니다.두 번째 인수는 소수점 오른쪽에 있는 최대 자릿수인 척도입니다.

따라서,(4,2)무엇이든지 할 수 있는-99.99로.99.99.

당신이 왜 당신을99.99원하는 것이 아닌3.80, 삽입하려는 값은 다음 값보다 크게 해석해야 합니다.99.99, 그래서 최대값을 사용합니다.테이블을 삽입하거나 업데이트할 때 사용하는 코드를 게시할 수도 있습니다.

편집

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html 에 따라 규모와 정밀도의 사용에 대한 오해를 수정했습니다.

네, 4,2는 "총 4자리, 그 중 2자리는 소수점 뒤"를 의미합니다.그것은 다음과 같은 형식의 숫자로 번역됩니다.00.00. 그 외에도 SQL 쿼리를 보여주셔야 합니다.PHP는 정당한 이유 없이 3.80을 99.99로 번역할 수 없습니다.쿼리에서 필드/값을 잘못 정렬하여 다른 필드에 있는 숫자를 더 크게 삽입하려고 하는 것일 수 있습니다.

당신의 코딩에서 뭔가 다른 것을 발견했어요.

INSERT INTO reports_services (id,title,description,cost) VALUES (0, 'test title', 'test decription ', '3.80')

"CREATE TABLE" 코드에서는 ID가 "AUTO_INCREATION"으로 설정되어 있는데, 이는 해당 필드에 대한 결과를 자동으로 생성한다는 것을 의미합니다. 그러나 위 코드에서는 삽입 중 하나로 포함하고 "VALUES"에서는 0을 갖습니다.그게 AUTO_INC로 설정되어 있기 때문에 공백으로 두었다고 말하는 방법인지 아니면 실제 코드인지...만약 당신이 가지고 있는 코드라면, 당신은 데이터를 자동으로 생성하기 위해 데이터를 필드 세트에 보내려고 해서는 안될 뿐만 아니라, 그것을 잘못된 방법으로 하는 것이 올바른 방법일 것입니다.

'0',

니가 집어넣은

0,

lol..그래서 그것이 문제의 원인이 될수도 있습니다.또한 "테스트 설명" 후 코드에서 '......' 앞에 공간이 있는 것을 발견했습니다. 그것도 뭔가를 던지고 있을지도 모릅니다. Idk.이 방법이 도움이 될 수 있기를 바랍니다. 지금 머리를 뽑고 있는 다른 문제를 해결할 수 있기를.. 말이 나온 김에..머리를 다 쥐어뜯기 전에 문제를 해결해야 해요..... 행운을 빌어요.. :)

업데이트...

잊을 뻔했네요...빈 공간임을 보여줄 수 있는 0을 가진다면...ID에 "test title"을 입력하고 제목에 "test description"을 입력한 다음 설명에 "3.what cents"를 입력하여 "비용"을 비워 둘 수 있습니다. 이는 NOT NULL로 설정한 것이 아니라면 NULL로 설정한 것을 잘못 알고 있지 않기 때문입니다.그래서 어쩔 수 없이 뭔가...아마도..ㅋㅋ

언급URL : https://stackoverflow.com/questions/6999582/how-to-insert-decimal-into-mysql-database

반응형