Vraag : Opgeslagen Mysql proc gaat al waardenhulp over

Hallo hebben guys.

I een opgeslagen procedure.
For opslag, merk, vertrekken, subd, product, categ stoffen, seizoen en aankoopparameters vastgemaakt, als ik daar ALLE WAARDEN,
Is een gemakkelijkere snellere manier toen wil, gebruikend REGEXP en daar overgaand het b.v. „[- 0-9]“ in de vraag naar everything.

is een manier de parameter NIET om enkel te omvatten, zodat is alles passed.

Like als het MERK = '' dan het alles. overgaat.

Hope die. steek houdt.
Kj
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
DELIMITER $$
DE PROCEDURE VAN DE DALING ALS `BW `$$ BESTAAT
CRE�ëR BW `VAN DE PROCEDURE `(IN OPSLAG VARCHAR (2555),
                      IN MERK VARCHAR (2555),
                      IN VERTREK VARCHAR (2555),
                      IN SUBD VARCHAR (2555),
                      IN PRODUCT VARCHAR (2555),
                      IN CATEG VARCHAR (2555),
                      IN STOF VARCHAR (2555),
                      IN SEIZOEN VARCHAR (2000),
                      IN AANKOOP VARCHAR (2000),
                      IN STIJL VARCHAR (255),
                      IN STARTDATE VARCHAR (255),
                      IN ENDDATE VARCHAR (255))

BEGIN

    PLAATS @BWS = CONCAT („

Selecteer s.storename,
       s.storenumber,
       s.brandname,
       s.brandnumber,
       s.deptname,
       s.deptcode,
       s.subdname,
       s.subdcode,
       s.prodname,
       s.prodcode,
       s.catename,
       s.catecode,
       s.fabricname,
       s.fabricno,
       s.seasname,
       s.seascode,
       s.purchflagdescription,
       s.purchflagcode,
       s.stylecode,
       s.description,
       s.datefirstrecv,
       s.datelastrecv,
       som (h.quantity) zoals VERKOCHT,
       s.datelastsold,


(selecteer ifnull (som (h.quantity), 0)
van geschiedenis h
waar (h.stockcode = s.stockcode
en h.storenumber = s.storenumber)
en h.subtranstype = 6
en s.storenumber BINNEN („, OPSLAG,“)
en s.brandnumber BINNEN („, MERK,“)
en s.deptcode REGEXP „, VERTREKKEN,“
en s.subdcode REGEXP „, SUBD,“
en s.prodcode REGEXP „, PRODUCT,“
en s.catecode REGEXP „, CATEG,“
en s.fabricno REGEXP „, STOF,“
en s.seascode REGEXP „, SEIZOEN,“
en s.purchflagcode REGEXP „, AANKOOP,“
en s.stylecode ALS „, STIJL,“
en (s.datefirstrecv of s.datelastrecv of s.datelastsold) is niet ongeldig
en h.transdate tussen „, STARTDATE,“ en „, ENDDATE,“) als QTYRECV,


(selecteer ifnull (som (h.quantity), 0)
van geschiedenis h
waar (h.stockcode = s.stockcode
en h.storenumber = s.storenumber)
en h.subtranstype < „4“
en s.storenumber BINNEN („, OPSLAG,“)
en s.brandnumber BINNEN („, MERK,“)
en s.deptcode REGEXP „, VERTREKKEN,“
en s.subdcode REGEXP „, SUBD,“
en s.prodcode REGEXP „, PRODUCT,“
en s.catecode REGEXP „, CATEG,“
en s.fabricno REGEXP „, STOF,“
en s.seascode REGEXP „, SEIZOEN,“
en s.purchflagcode REGEXP „, AANKOOP,“
en s.stylecode ALS „, STIJL,“
en (s.datefirstrecv of s.datelastrecv of s.datelastsold) is niet ongeldig
en h.transdate tussen „, STARTDATE,“ en „, ENDDATE,“) ONHAND




van geschiedenis h BINNEN SLUIT me aan bij styleperformance s
(h.storenumber=s.storenumber
en h.stockcode=s.stockcode)
en h.subtranstype < „4“
en s.storenumber BINNEN („, OPSLAG,“)
en s.brandnumber BINNEN („, MERK,“)
en s.deptcode RLIKE „, VERTREKKEN,“
en s.subdcode RLIKE „, SUBD,“
en s.prodcode RLIKE „, PRODUCT,“
en s.catecode RLIKE „, CATEG,“
en s.fabricno RLIKE „, STOF,“
en s.seascode RLIKE „, SEIZOEN,“
en s.purchflagcode RLIKE „, AANKOOP,“
en s.stylecode ALS „, STIJL,“
en (s.datefirstrecv of s.datelastrecv of s.datelastsold) is niet ongeldig
en h.transdate tussen „, STARTDATE,“ en „, ENDDATE,“
groep door s.storenumber, s.stockcode
ORDE DOOR VERKOCHTE DESC
GRENS 20 „);

#SELECT @bws;
BEREID b_w_s van @bws voor;
VOER b_w_s uit;
DEALLOCATE VOORBEREIDEN b_w_s;

BEËINDIG $$
AFBAKENING;

BW `van de VRAAG „(„1.2.9.10“, „1.2.3.4.5.6.7.8.9.10.11.12.13.14.15“,““ [- 0-9] „„,““ [- 0-9] „„,““ [- 0-9] „„,““ [- 0-9] „„,““ [- 0-9a-z] „„,““ [- 0-9a-z] „„,““ [- 0-9a-z] '„,“ „%““, „„2010-06-01““, „„2010-07-03““)

Antwoord : Opgeslagen Mysql proc gaat al waardenhulp over

en s.storenumber IN („, OPSLAG,“) „,
     COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER IN (“, MERK, „)“) EIND BRAND= "" toen "" anders concat („en s.brandnumber,
„en s.deptcode REGEXP“, VERTREKKEN, „

O.k. miste ik een EIND.
Fundamenteel, is wat het betekent, bij het deel waar u normaal het koord toevoegt

en s.brandnumber BINNEN („, MERK,“)

Aan uw volledige SQL, controleert het of het Merk "" is.  Als het leeg is, voegt het niets aan de definitieve vraag toe.  Bekijkend enkel de lijn van het COMPUTER-AIDED SOFTWARE ENGINEERING, doet het dit:

     COMPUTER-AIDED SOFTWARE ENGINEERING WANNEER BRAND= "" TOEN
         ""
     anders
         concat („en s.brandnumber IN (“, MERK, „)“)
     EIND,

Zo toe voegt het of „en s.brandnumber in ()“ als de merkfilter niet leeg is, of niets (en daarom volledige filtreert sql niet op merk).

Laat me weten of is dit onduidelijk.
Andere oplossingen  
 
programming4us programming4us