![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
witam,
mam takim problem: mam pole typu varchar, gdzie wpisuję różne zakupy, a część tych rekordów to np. 3x1000, 4x1000, 10x2000, 12x2000 itd. Chciałbym, aby w przypadku, gdy pierwszym znakiem jest cyfra ORDER BY porządkował mi te rekordy jakby te pola były liczbowe. Jest taka możliwość? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
I jak niby miałoby zachować się sortowanie wartośći 3x1000 oraz 10x1000? Pierwszym znakiem w obu przypadkach jest cyfra, ale nie mam pojęcia który powinien być pierwszy w kolejności i dlaczego.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A czy w tym przypadku 4x1000 (4000) ma być większe niż 3x2000 (6000) czy mniejsze (według mnożnej czy iloczynu)?
Ten post edytował trueblue 8.02.2016, 20:46:49 -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
ORDER BY SUBSTRING_INDEX(kolumna, 'x', 1)+0 ASC
ORDER BY kolumna+0 ASC i inne wariacje których nie sprecyzowałeś. Ten post edytował Pyton_000 8.02.2016, 21:11:54 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
ten x to nie znak mnożenia. Chciałbym uzyskać taką kolejność:
3x1000 3x2000 4x1000 5x2000 6x1000 6x2000 6x4000 10x2000 12x2000 20x1000 chodzi o to że w przypadku takich artykułów liczba przez "x" jest grubością materiału i chciałbym aby 10x1500 było za 8x1500 a nie przed. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
To masz rozwiązanie od Pyton_000, ewentualnie:
a dodatkowo: jeśli priorytet mają wartości formatu YxZZZZ. Ten post edytował trueblue 8.02.2016, 21:20:37 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za pomoc, mógłbym prosić o wyjaśnienie co oznacza/robi linijka kodu:
ORDER BY kolumna+0 ASC ? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat mógłbym prosić o wyjaśnienie co oznacza/robi linijka kodu: Rzutuje kolumnę tekstową na typ numeryczny. Przy czym raczej powinieneś tam zrobić zwykłego CAST-a dla czytelności.ORDER BY kolumna+0 ASC ? Swoją drogą dlaczego najzwyczajniej w świecie nie rozbijesz tego na dwie kolumny i nie dasz później czegoś w rodzaju ...ORDER BY liczba_1 ASC, liczba_2 ASC? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 1 Dołączył: 4.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
ponieważ niektóre artykuły to słowa, dlatego tak muszę kombinować.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
W takim razie utwórz sobie kilka kolumn:
- określającą typ: A / B, - określające liczbę_1 oraz liczbę_2 w przypadku wyboru typu A, - określającą inną_wartość w przypadku wyboru typu B. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:02 |