BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Изваждане в SQL
sweet13
Публикувано на: 25-04-2018, 09:34
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 7
Регистриран на: 25.04.18



Много се извинявам ако не го обясня правилно, много съм бос в нещата но сега се уча.

Не се съобразих в началото, че ще ми трябва още единна колона и от phpmyadmin в базата от данни си добавих новата колона да кажем ВВ която в момента е празна, ще се опитам по на кратко да дам пример за да не пиша глупости.

таблица data има колона да кажем АА има стойности и искам от тия стойности да извадя 0.2 в колана BB

data

AA I ВВ
4.5 см I 4.3 см
7.5 см I 7.3 см
63.3 см I 63.1 см
78.8 см I
56.6 см I
43.4 см I

може ли да ударите едно рамо icon_wink.gif

Това мнение е било редактирано от sweet13 на 25-04-2018, 09:53
PMEmail Poster
Top
thrawn
Публикувано на: 25-04-2018, 09:52
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1795
Регистриран на: 17.01.17



SQL
update tbl_name set BB = AA - 0.2


Това мнение е било редактирано от thrawn на 25-04-2018, 09:53
PMEmail Poster
Top
sweet13
Публикувано на: 25-04-2018, 10:07
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 7
Регистриран на: 25.04.18



QUOTE (thrawn @ 25-04-2018, 09:52)
SQL
update tbl_name set BB = AA - 0.2

Преди да го изпълня само да вметна а как ще стане и да се прехвърли и това см
да стане резултата да кажем 45.3 см ?
PMEmail Poster
Top
thrawn
Публикувано на: 25-04-2018, 10:13
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1795
Регистриран на: 17.01.17



Това са мерни единици, а числото е стойност.
Правилния формат на базата данни е да имаш колона със стойността и отделна колона с мерната единица. Комбинирането на двете е лош дизайн. А пример защо е лош дизайн е проблемът които имаш. Демек, не можеш да работиш със стойността защото тя е в грешен формат.

Та оправи си дизайнът на базата данни.

И между другото, колоната която искаш да получиш изобщо не бива да присъства в базата данни (обикновено де). Тя се нарича "изчислено поле" и се включва само в изгледите за потребителя.
PMEmail Poster
Top
dvader
Публикувано на: 25-04-2018, 10:15
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4125
Регистриран на: 12.07.05



QUOTE (sweet13 @ 25-04-2018, 10:07)
как ще стане и да се прехвърли и това см
да стане резултата да кажем 45.3 см ?

Най-добре да не го правиш...
Ако мерната единица е винаги една, тогава няма смисъл да се пази в базата и спокойно може да се добавя в SELECT-а (прочее, същото важи и за цялото упражнение с изваждането).
Ако мерната единица може да бъде различна, то тогава трябва да има втора таблица с мерните единици а в първата да има отделна колона, която да сочи коя мерна единица се ползва (FOREIGN KEY).


--------------------
I find your lack of faith disturbing
PM
Top
sweet13
Публикувано на: 25-04-2018, 10:25
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 7
Регистриран на: 25.04.18



Значи вкарах много стойности и преди да мина на метър осъзнах, че ще трябва още една колонна.
От админа панела на сайта ги вкарвам тия см или метри или милиметри и за напред ще е различно, но в момента трябва да си извадя с 0.2 см преди да почна с различни да кажем има на места и 0.7.
Дето се вика се усетех по средата и ми трябва сега само с - 0.2 см.
А вече като продължа ще си ги вкарвам едно по едно различните стойности.
За това ми се налага да го направя така иначе пак трябва да почна от начало
PMEmail Poster
Top
thrawn
Публикувано на: 25-04-2018, 10:32
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1795
Регистриран на: 17.01.17



Очевидно таблицата е с лош дизайн и почването от начало май е повече от желателно (сосбено, като спомена, че и константата 0.2 не е константа).

Та проавилната структура е нещо подобно value | const | unit с примерни стойности (4.5, 0.2, 'см'), (78.8, 0.00, 'см') ...
Колоните const и unit може да са външни ключове (както спомена dvader). Така се налага допълнителна гаранция за цялост на данните, нещо което е хубаво да го има поне за unit.

Това мнение е било редактирано от thrawn на 25-04-2018, 10:32
PMEmail Poster
Top
dvader
Публикувано на: 25-04-2018, 10:37
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4125
Регистриран на: 12.07.05



QUOTE (sweet13 @ 25-04-2018, 10:25)
Дето се вика се усетех по средата и ми трябва сега само с - 0.2 см.

Няма ли да е по-добре да оправиш вече въведените данни вместо да добавяш нова колона?


--------------------
I find your lack of faith disturbing
PM
Top
sweet13
Публикувано на: 25-04-2018, 10:46
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 7
Регистриран на: 25.04.18



QUOTE (dvader @ 25-04-2018, 10:37)
QUOTE (sweet13 @ 25-04-2018, 10:25)
Дето се вика се усетех по средата и ми трябва сега само с - 0.2 см.

Няма ли да е по-добре да оправиш вече въведените данни вместо да добавяш нова колона?

Новата колона трябва да е има.
Как да го обясня за да ме разберете правилно, съветите които давате със сигурност са правилния начин и така трябва да е както го казвате, но както казах аз съм босия и искам да си спестя работа както - казват хората да затрупам лайното с цимент.
PMEmail Poster
Top
thrawn
Публикувано на: 25-04-2018, 10:50
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1795
Регистриран на: 17.01.17



Ми добави си тогава това см.

SQL
update tbl_name set BB = concat(AA - 0.2, ' см');
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0