Toon posts:

[mysql] Statische tekst langer dan 17 tekens

Pagina: 1
Acties:
  • 142 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een probleempje met een mysql query

ik probeer het volgende

code:
1
SELECT "Dit is een stukje tekst langer dan 17 tekens" as stukje_tekst;


Maar krijg dan alleen de eerste 17 tekens terug.

Heb gezocht op google (Zoekstringetje)

Maar krijg geen goed antwoord, werk met een java connector en de antwoorden hadden betrekking op ODBC (option = 3 toevoegen).

Iemand een suggestie.

Het is dus expliciet de bedoeling dat dit veld NIET uit de database komt maar zelf toegevoegd wordt.

Edit: dit gebeurt dus alleen in combi met een union (geen onion, want dat zijn uien)

[ Voor 24% gewijzigd door Verwijderd op 29-07-2005 14:22 ]


  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Misschien begrijp ik je verkeerd, maar waarom selecteer je die tekst en niet een veld?

Dus: SELECT `veldnaam` as stukjetekst FROM `table` WHERE `veldnaam` LIKE '%tekstdie je wilt hebben%'

[ Voor 43% gewijzigd door Taro op 28-07-2005 11:03 ]

iotdomotica.nl | Replace fear of the unknown with curiosity | 64 kWh thuisaccu | Tesla Model Y LR & Model 3 SR+ | 11.460 Wp


  • Hark_k
  • Registratie: September 2002
  • Laatst online: 04-05 15:51
"Dit is een stukje tekst langer dan 17 tekens" is natuurlijk geen databaseveld. Het moet dus bijvoorbeeld zijn:
Select * from Tabel Where tekst like '%Dit is een stukje tekst langer dan 17 tekens%'

[ Voor 17% gewijzigd door Hark_k op 28-07-2005 11:02 ]


Verwijderd

Topicstarter
Taro schreef op donderdag 28 juli 2005 @ 11:01:
Misschien begrijp ik je verkeerd, maar waarom selecteer je die tekst en niet een veld?

Dus: SELECT `veldnaam` as stukjetekst FROM `table` WHERE `veldnaam` = 'tekstdie je wilt hebben'
Het moet statisch zijn, ik gebruik een union all query waarin ik 8x hetzelfde record ophaal maar met een wijziging in dit 'statische' veld. (ik gebruik JasperReports en die is nogal slecht in expressies vandaar dat ik het oplos in de query).

Ik wil de query hier wel plaatsen maar die is behoorlijk lang....

[ Voor 9% gewijzigd door Verwijderd op 28-07-2005 11:07 ]


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Als ik die query via phpMyAdmin op een MySQL v4.0.24 server run krijg ik gewoon de volledige tekst terug ?

[ Voor 1% gewijzigd door TheRookie op 28-07-2005 11:11 . Reden: typo ]


Verwijderd

Topicstarter
TheRookie schreef op donderdag 28 juli 2005 @ 11:10:
Als ik die query via phpMyAdmin op een MySQL v4.0.24 server run krijg ik gewoon de volledige tekst terug ?
hmmm...dan zou het JDBC moeten zijn :(
bij mij doet hij het in PHP my admin ook goed namelijk

Maar ik vind op internet niks over JDBC en dit probleem

[ Voor 19% gewijzigd door Verwijderd op 28-07-2005 11:27 ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Officieel hoor je strings met ' te omsluiten, niet met ". Doe dat eerst eens, wellicht helpt dat al genoeg.

Maar als het in phpmyadmin goed gaat, met exact het voorbeeld dat je geeft of de fout mee constateert (dus niet iets dat er een beetje op lijkt), dan moet je wellicht op zoek naar fouten in de code eromheen. 't Zou natuurlijk een jdbc-driver-probleem kunnen zijn, maar dat lijkt me toch wel een beetje sterk.

[ Voor 14% gewijzigd door ACM op 28-07-2005 11:34 ]


Verwijderd

Topicstarter
ACM schreef op donderdag 28 juli 2005 @ 11:32:
Officieel hoor je strings met ' te omsluiten, niet met ". Doe dat eerst eens, wellicht helpt dat al genoeg.

Maar als het in phpmyadmin goed gaat, met exact het voorbeeld dat je geeft of de fout mee constateert (dus niet iets dat er een beetje op lijkt), dan moet je wellicht op zoek naar fouten in de code eromheen. 't Zou natuurlijk een jdbc-driver-probleem kunnen zijn, maar dat lijkt me toch wel een beetje sterk.
Heb geen code er omheen, gaat via applicatie (iReport en Jasperreports)
Heb het nu met qoutes geprobeerd, probleem blijft.
Ik ken ook geen veldtype dat 17 tekens lang is....
Rule: DB2 relationship databases can only use a maximum of 17 characters in the relationship table names. Although table names do not have a limit in DB2, index names do. Because Relationship Designer Express generates index names for the relationship tables based on their table names, relationship table names for a DB2 database must be 17 characters or less.
Van Websphere website van ibm
http://publib.boulder.ibm.com/infocenter/wbihelp/index.jsp?topic=/com.ibm.wbise_developer.doc/doc/map_dev/mapdev72.htm
Krijg het idee dat de JDBC driver dit als tabelnamen ziet ipv teksten (staat namelijk op dezelfde plaats)

[ Voor 52% gewijzigd door Verwijderd op 28-07-2005 11:58 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 01-05 19:54

Bosmonster

*zucht*

Aangezien de het 18e teken een spatie is, wordt de string mogelijk afgebroken?

Of heb je het met een stuk tekst zonder spaties ook?

(long shot, maar wie weet wat die software doet met query's)

[edit]
hmm aan bovenstaande post te zien lijkt het een ander probleem.

[ Voor 16% gewijzigd door Bosmonster op 28-07-2005 11:59 ]


Verwijderd

Topicstarter
Bosmonster schreef op donderdag 28 juli 2005 @ 11:58:
Aangezien de het 18e teken een spatie is, wordt de string mogelijk afgebroken?

Of heb je het met een stuk tekst zonder spaties ook?

(long shot, maar wie weet wat die software doet met query's)
Zonder spaties evenzo :'(

  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 04-05 11:36
Je zegt 8 x een union te draaien, maar dan met 8 x een andere voorwaarde ? toch ?

Misschien een (tijdelijke) tabel vullen met die 8 waarde's , en de query in een keer draaien ???

Ik snap eigenlijk niet goed waar je naar toe wil, misschien dat handig dat je evt. even die statements post.

Verwijderd

Topicstarter
oke jullie hebben er om gevraagd hoor:

Hier komt ie dan:

code:
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
SELECT      mis.offertes.id as offerte_id,
        mis.offertes.offertenr as offerte_nummer,
        mis.offertes.verzenddatum as offerte_verzenddatum,
            mis.offertes_klanten.id as klant_id,
        mis.relaties.id as relatie_id,
        mis.relaties.naam as relatie_naam,
        mis.relaties.voorvoegsel as relatie_voorvoegsel,
        mis.relaties.padres as relatie_adres,
        mis.relaties.ppostcode as relatie_postcode,
        mis.relaties.pwoonplaats as relatie_woonplaats,
        mis.relaties_contactpersonen.id as contactpersoon_id,
        mis.relaties_contactpersonen.naam as contactpersoon_naam,
        mis.relaties_contactpersonen.voorletters as contactpersoon_voorletters,
        mis.relaties_contactpersonen.tussenvoegsel as contactpersoon_tussenvoegsel,
        mis.titulatuur.id as titulatuur_id,
        mis.titulatuur.adrestitel as contactpersoon_aanhef,
        mis.offertes_producten.id as product_id,
        mis.offertes_producten.offertetekst00 as product_zondertitel,
        mis.offertes_producten.offertetekst10 as product_contactpersoon,
        mis.offertes_producten.productomschrijving as product_omschrijving,
            mis.offertes_producten.offertetekst11 as product_prijsbetaling, 
        mis.subregios.id as subregio_id,
        mis.subregios.code as subregio_regio,
        mis.subregios.wadres as subregio_wadres, 
        mis.subregios.padres as subregio_padres,
        mis.subregios.ppostcode as subregio_postcode,
        mis.subregios.pwoonplaats as subregio_woonplaats,
        mis.subregios.telefoon as subregio_telefoon,
        mis.subregios.fax as subregio_fax,
        mis.subregios.email as subregio_email,
        mis.subregios.www as subregio_www,
        mis.subregios.kvk as subregio_kvk,
        mis.subregios.bank as subregio_bank, 
        mis.medewerkers.id as account_id,
        mis.medewerkers.naam as account_naam,
        mis.medewerkers.tussenvoegsel as account_tussenvoegsel,
        mis.medewerkers.roepnaam as account_roepnaam,
        mis.medewerkers.mobiel as account_mobiel,
        mis.medewerkers.email as account_email,
        mis.offertes_producten.offertetekst01 as product_tekst,
        'Inleiding:' as product_toelichting,
        mdms.opm_offertes_producten.na_inleiding as product_afbraak,
        'product_inleiding' as product_jasper
FROM            mis.offertes_klanten
LEFT JOIN       mis.offertes on mis.offertes_klanten.offerte_id = mis.offertes.id
LEFT JOIN       mis.offertes_producten on mis.offertes_producten.offerte_id = mis.offertes.id
LEFT JOIN   mis.relaties on mis.offertes_klanten.relatie_id = mis.relaties.id
LEFT JOIN   mis.relaties_contactpersonen on mis.offertes_klanten.relaties_contactpersonen_id = mis.relaties_contactpersonen.id
LEFT JOIN       mis.titulatuur on mis.titulatuur.id = mis.relaties_contactpersonen.titulatuur_id
LEFT JOIN   mis.subregios on mis.offertes.subregio_id = mis.subregios.id
LEFT JOIN   mis.medewerkers on mis.offertes.accountmanager_id = mis.medewerkers.id
LEFT JOIN   mdms.opm_offertes_producten on mis.offertes_producten.id = mdms.opm_offertes_producten.offertes_producten_id
WHERE       mis.offertes.id = $P{offerte_id}
    and     mis.offertes_producten.id = $P{product_id}
UNION ALL
SELECT      mis.offertes.id as offerte_id,
        mis.offertes.offertenr as offerte_nummer,
        mis.offertes.verzenddatum as offerte_verzenddatum,
            mis.offertes_klanten.id as klant_id,
        mis.relaties.id as relatie_id,
        mis.relaties.naam as relatie_naam,
        mis.relaties.voorvoegsel as relatie_voorvoegsel,
        mis.relaties.padres as relatie_adres,
        mis.relaties.ppostcode as relatie_postcode,
        mis.relaties.pwoonplaats as relatie_woonplaats,
        mis.relaties_contactpersonen.id as contactpersoon_id,
        mis.relaties_contactpersonen.naam as contactpersoon_naam,
        mis.relaties_contactpersonen.voorletters as contactpersoon_voorletters,
        mis.relaties_contactpersonen.tussenvoegsel as contactpersoon_tussenvoegsel,
        mis.titulatuur.id as titulatuur_id,
        mis.titulatuur.adrestitel as contactpersoon_aanhef,
        mis.offertes_producten.id as product_id,
        mis.offertes_producten.offertetekst00 as product_zondertitel,
        mis.offertes_producten.offertetekst10 as product_contactpersoon,
        mis.offertes_producten.productomschrijving as product_omschrijving,
            mis.offertes_producten.offertetekst11 as product_prijsbetaling, 
        mis.subregios.id as subregio_id,
        mis.subregios.code as subregio_regio,
        mis.subregios.wadres as subregio_wadres, 
        mis.subregios.padres as subregio_padres,
        mis.subregios.ppostcode as subregio_postcode,
        mis.subregios.pwoonplaats as subregio_woonplaats,
        mis.subregios.telefoon as subregio_telefoon,
        mis.subregios.fax as subregio_fax,
        mis.subregios.email as subregio_email,
        mis.subregios.www as subregio_www,
        mis.subregios.kvk as subregio_kvk,
        mis.subregios.bank as subregio_bank, 
        mis.medewerkers.id as account_id,
        mis.medewerkers.naam as account_naam,
        mis.medewerkers.tussenvoegsel as account_tussenvoegsel,
        mis.medewerkers.roepnaam as account_roepnaam,
        mis.medewerkers.mobiel as account_mobiel,
        mis.medewerkers.email as account_email,
        mis.offertes_producten.offertetekst02 as product_tekst,
        'Doel van de klant :' as product_toelichting,
        mdms.opm_offertes_producten.na_klant as product_afbraak,
        'product_doel_klant' as product_jasper
FROM            mis.offertes_klanten
LEFT JOIN       mis.offertes on mis.offertes_klanten.offerte_id = mis.offertes.id
LEFT JOIN       mis.offertes_producten on mis.offertes_producten.offerte_id = mis.offertes.id
LEFT JOIN   mis.relaties on mis.offertes_klanten.relatie_id = mis.relaties.id
LEFT JOIN   mis.relaties_contactpersonen on mis.offertes_klanten.relaties_contactpersonen_id = mis.relaties_contactpersonen.id
LEFT JOIN       mis.titulatuur on mis.titulatuur.id = mis.relaties_contactpersonen.titulatuur_id
LEFT JOIN   mis.subregios on mis.offertes.subregio_id = mis.subregios.id
LEFT JOIN   mis.medewerkers on mis.offertes.accountmanager_id = mis.medewerkers.id
LEFT JOIN   mdms.opm_offertes_producten on mis.offertes_producten.id = mdms.opm_offertes_producten.offertes_producten_id
WHERE       mis.offertes.id = $P{offerte_id}
    and     mis.offertes_producten.id = $P{product_id}
UNION ALL
SELECT      mis.offertes.id as offerte_id,
        mis.offertes.offertenr as offerte_nummer,
        mis.offertes.verzenddatum as offerte_verzenddatum,
            mis.offertes_klanten.id as klant_id,
        mis.relaties.id as relatie_id,
        mis.relaties.naam as relatie_naam,
        mis.relaties.voorvoegsel as relatie_voorvoegsel,
        mis.relaties.padres as relatie_adres,
        mis.relaties.ppostcode as relatie_postcode,
        mis.relaties.pwoonplaats as relatie_woonplaats,
        mis.relaties_contactpersonen.id as contactpersoon_id,
        mis.relaties_contactpersonen.naam as contactpersoon_naam,
        mis.relaties_contactpersonen.voorletters as contactpersoon_voorletters,
        mis.relaties_contactpersonen.tussenvoegsel as contactpersoon_tussenvoegsel,
        mis.titulatuur.id as titulatuur_id,
        mis.titulatuur.adrestitel as contactpersoon_aanhef,
        mis.offertes_producten.id as product_id,
        mis.offertes_producten.offertetekst00 as product_zondertitel,
        mis.offertes_producten.offertetekst10 as product_contactpersoon,
        mis.offertes_producten.productomschrijving as product_omschrijving,
        mis.offertes_producten.offertetekst11 as product_prijsbetaling, 
            mis.subregios.id as subregio_id,
        mis.subregios.code as subregio_regio,
        mis.subregios.wadres as subregio_wadres, 
        mis.subregios.padres as subregio_padres,
        mis.subregios.ppostcode as subregio_postcode,
        mis.subregios.pwoonplaats as subregio_woonplaats,
        mis.subregios.telefoon as subregio_telefoon,
        mis.subregios.fax as subregio_fax,
        mis.subregios.email as subregio_email,
        mis.subregios.www as subregio_www,
        mis.subregios.kvk as subregio_kvk,
        mis.subregios.bank as subregio_bank, 
        mis.medewerkers.id as account_id,
        mis.medewerkers.naam as account_naam,
        mis.medewerkers.tussenvoegsel as account_tussenvoegsel,
        mis.medewerkers.roepnaam as account_roepnaam,
        mis.medewerkers.mobiel as account_mobiel,
        mis.medewerkers.email as account_email,
        mis.offertes_producten.offertetekst03 as product_tekst,
        'Doel van de interventie(s):' as product_toelichting,
        mdms.opm_offertes_producten.na_interventies as product_afbraak,
        'product_doel_interventie' as product_jasper
FROM            mis.offertes_klanten
LEFT JOIN       mis.offertes on mis.offertes_klanten.offerte_id = mis.offertes.id
LEFT JOIN       mis.offertes_producten on mis.offertes_producten.offerte_id = mis.offertes.id
LEFT JOIN   mis.relaties on mis.offertes_klanten.relatie_id = mis.relaties.id
LEFT JOIN   mis.relaties_contactpersonen on mis.offertes_klanten.relaties_contactpersonen_id = mis.relaties_contactpersonen.id
LEFT JOIN       mis.titulatuur on mis.titulatuur.id = mis.relaties_contactpersonen.titulatuur_id
LEFT JOIN   mis.subregios on mis.offertes.subregio_id = mis.subregios.id
LEFT JOIN   mis.medewerkers on mis.offertes.accountmanager_id = mis.medewerkers.id
LEFT JOIN   mdms.opm_offertes_producten on mis.offertes_producten.id = mdms.opm_offertes_producten.offertes_producten_id
WHERE       mis.offertes.id = $P{offerte_id}
    and     mis.offertes_producten.id = $P{product_id}
UNION ALL
SELECT      mis.offertes.id as offerte_id,
        mis.offertes.offertenr as offerte_nummer,
        mis.offertes.verzenddatum as offerte_verzenddatum,
            mis.offertes_klanten.id as klant_id,
        mis.relaties.id as relatie_id,
        mis.relaties.naam as relatie_naam,
        mis.relaties.voorvoegsel as relatie_voorvoegsel,
        mis.relaties.padres as relatie_adres,
        mis.relaties.ppostcode as relatie_postcode,
        mis.relaties.pwoonplaats as relatie_woonplaats,
        mis.relaties_contactpersonen.id as contactpersoon_id,
        mis.relaties_contactpersonen.naam as contactpersoon_naam,
        mis.relaties_contactpersonen.voorletters as contactpersoon_voorletters,
        mis.relaties_contactpersonen.tussenvoegsel as contactpersoon_tussenvoegsel,
        mis.titulatuur.id as titulatuur_id,
        mis.titulatuur.adrestitel as contactpersoon_aanhef,
        mis.offertes_producten.id as product_id,
        mis.offertes_producten.offertetekst00 as product_zondertitel,
        mis.offertes_producten.offertetekst10 as product_contactpersoon,
        mis.offertes_producten.productomschrijving as product_omschrijving,
            mis.offertes_producten.offertetekst11 as product_prijsbetaling, 
        mis.subregios.id as subregio_id,
        mis.subregios.code as subregio_regio,
        mis.subregios.wadres as subregio_wadres, 
        mis.subregios.padres as subregio_padres,
        mis.subregios.ppostcode as subregio_postcode,
        mis.subregios.pwoonplaats as subregio_woonplaats,
        mis.subregios.telefoon as subregio_telefoon,
        mis.subregios.fax as subregio_fax,
        mis.subregios.email as subregio_email,
        mis.subregios.www as subregio_www,
        mis.subregios.kvk as subregio_kvk,
        mis.subregios.bank as subregio_bank, 
        mis.medewerkers.id as account_id,
        mis.medewerkers.naam as account_naam,
        mis.medewerkers.tussenvoegsel as account_tussenvoegsel,
        mis.medewerkers.roepnaam as account_roepnaam,
        mis.medewerkers.mobiel as account_mobiel,
        mis.medewerkers.email as account_email,
        mis.offertes_producten.offertetekst04 as product_tekst,
        'Aanbod:' as product_toelichting,
        mdms.opm_offertes_producten.na_aanbod as product_afbraak,
        'product_aanbod' as product_jasper
FROM            mis.offertes_klanten
LEFT JOIN       mis.offertes on mis.offertes_klanten.offerte_id = mis.offertes.id
LEFT JOIN       mis.offertes_producten on mis.offertes_producten.offerte_id = mis.offertes.id
LEFT JOIN   mis.relaties on mis.offertes_klanten.relatie_id = mis.relaties.id
LEFT JOIN   mis.relaties_contactpersonen on mis.offertes_klanten.relaties_contactpersonen_id = mis.relaties_contactpersonen.id
LEFT JOIN       mis.titulatuur on mis.titulatuur.id = mis.relaties_contactpersonen.titulatuur_id
LEFT JOIN   mis.subregios on mis.offertes.subregio_id = mis.subregios.id
LEFT JOIN   mis.medewerkers on mis.offertes.accountmanager_id = mis.medewerkers.id
LEFT JOIN   mdms.opm_offertes_producten on mis.offertes_producten.id = mdms.opm_offertes_producten.offertes_producten_id
WHERE       mis.offertes.id = $P{offerte_id}
    and     mis.offertes_producten.id = $P{product_id}
UNION ALL
SELECT      mis.offertes.id as offerte_id,
        mis.offertes.offertenr as offerte_nummer,
        mis.offertes.verzenddatum as offerte_verzenddatum,
            mis.offertes_klanten.id as klant_id,
        mis.relaties.id as relatie_id,
        mis.relaties.naam as relatie_naam,
        mis.relaties.voorvoegsel as relatie_voorvoegsel,
        mis.relaties.padres as relatie_adres,
        mis.relaties.ppostcode as relatie_postcode,
        mis.relaties.pwoonplaats as relatie_woonplaats,
        mis.relaties_contactpersonen.id as contactpersoon_id,
        mis.relaties_contactpersonen.naam as contactpersoon_naam,
        mis.relaties_contactpersonen.voorletters as contactpersoon_voorletters,
        mis.relaties_contactpersonen.tussenvoegsel as contactpersoon_tussenvoegsel,
        mis.titulatuur.id as titulatuur_id,
        mis.titulatuur.adrestitel as contactpersoon_aanhef,
        mis.offertes_producten.id as product_id,
        mis.offertes_producten.offertetekst00 as product_zondertitel,
        mis.offertes_producten.offertetekst10 as product_contactpersoon,
        mis.offertes_producten.productomschrijving as product_omschrijving,
            mis.offertes_producten.offertetekst11 as product_prijsbetaling, 
        mis.subregios.id as subregio_id,
        mis.subregios.code as subregio_regio,
        mis.subregios.wadres as subregio_wadres, 
        mis.subregios.padres as subregio_padres,
        mis.subregios.ppostcode as subregio_postcode,
        mis.subregios.pwoonplaats as subregio_woonplaats,
        mis.subregios.telefoon as subregio_telefoon,
        mis.subregios.fax as subregio_fax,
        mis.subregios.email as subregio_email,
        mis.subregios.www as subregio_www,
        mis.subregios.kvk as subregio_kvk,
        mis.subregios.bank as subregio_bank, 
        mis.medewerkers.id as account_id,
        mis.medewerkers.naam as account_naam,
        mis.medewerkers.tussenvoegsel as account_tussenvoegsel,
        mis.medewerkers.roepnaam as account_roepnaam,
        mis.medewerkers.mobiel as account_mobiel,
        mis.medewerkers.email as account_email,
        mis.offertes_producten.offertetekst05 as product_tekst,
        'Planning:' as product_toelichting,
        mdms.opm_offertes_producten.na_planning as product_afbraak,
        'product_planning' as product_jasper
FROM            mis.offertes_klanten
LEFT JOIN       mis.offertes on mis.offertes_klanten.offerte_id = mis.offertes.id
LEFT JOIN       mis.offertes_producten on mis.offertes_producten.offerte_id = mis.offertes.id
LEFT JOIN   mis.relaties on mis.offertes_klanten.relatie_id = mis.relaties.id
LEFT JOIN   mis.relaties_contactpersonen on mis.offertes_klanten.relaties_contactpersonen_id = mis.relaties_contactpersonen.id
LEFT JOIN       mis.titulatuur on mis.titulatuur.id = mis.relaties_contactpersonen.titulatuur_id
LEFT JOIN   mis.subregios on mis.offertes.subregio_id = mis.subregios.id
LEFT JOIN   mis.medewerkers on mis.offertes.accountmanager_id = mis.medewerkers.id
LEFT JOIN   mdms.opm_offertes_producten on mis.offertes_producten.id = mdms.opm_offertes_producten.offertes_producten_id
WHERE       mis.offertes.id = $P{offerte_id}
    and     mis.offertes_producten.id = $P{product_id}
UNION ALL
SELECT      mis.offertes.id as offerte_id,
        mis.offertes.offertenr as offerte_nummer,
        mis.offertes.verzenddatum as offerte_verzenddatum,
            mis.offertes_klanten.id as klant_id,
        mis.relaties.id as relatie_id,
        mis.relaties.naam as relatie_naam,
        mis.relaties.voorvoegsel as relatie_voorvoegsel,
        mis.relaties.padres as relatie_adres,
        mis.relaties.ppostcode as relatie_postcode,
        mis.relaties.pwoonplaats as relatie_woonplaats,
        mis.relaties_contactpersonen.id as contactpersoon_id,
        mis.relaties_contactpersonen.naam as contactpersoon_naam,
        mis.relaties_contactpersonen.voorletters as contactpersoon_voorletters,
        mis.relaties_contactpersonen.tussenvoegsel as contactpersoon_tussenvoegsel,
        mis.titulatuur.id as titulatuur_id,
        mis.titulatuur.adrestitel as contactpersoon_aanhef,
        mis.offertes_producten.id as product_id,
        mis.offertes_producten.offertetekst00 as product_zondertitel,
        mis.offertes_producten.offertetekst10 as product_contactpersoon,
        mis.offertes_producten.productomschrijving as product_omschrijving,
        mis.offertes_producten.offertetekst11 as product_prijsbetaling, 
            mis.subregios.id as subregio_id,
        mis.subregios.code as subregio_regio,
        mis.subregios.wadres as subregio_wadres, 
        mis.subregios.padres as subregio_padres,
        mis.subregios.ppostcode as subregio_postcode,
        mis.subregios.pwoonplaats as subregio_woonplaats,
        mis.subregios.telefoon as subregio_telefoon,
        mis.subregios.fax as subregio_fax,
        mis.subregios.email as subregio_email,
        mis.subregios.www as subregio_www,
        mis.subregios.kvk as subregio_kvk,
        mis.subregios.bank as subregio_bank, 
        mis.medewerkers.id as account_id,
        mis.medewerkers.naam as account_naam,
        mis.medewerkers.tussenvoegsel as account_tussenvoegsel,
        mis.medewerkers.roepnaam as account_roepnaam,
        mis.medewerkers.mobiel as account_mobiel,
        mis.medewerkers.email as account_email,
        mis.offertes_producten.offertetekst06 as product_tekst,
        'Locatie(s):' as product_toelichting,
        mdms.opm_offertes_producten.na_locatie as product_afbraak,
        'product_locatie' as product_jasper
FROM            mis.offertes_klanten
LEFT JOIN       mis.offertes on mis.offertes_klanten.offerte_id = mis.offertes.id
LEFT JOIN       mis.offertes_producten on mis.offertes_producten.offerte_id = mis.offertes.id
LEFT JOIN   mis.relaties on mis.offertes_klanten.relatie_id = mis.relaties.id
LEFT JOIN   mis.relaties_contactpersonen on mis.offertes_klanten.relaties_contactpersonen_id = mis.relaties_contactpersonen.id
LEFT JOIN       mis.titulatuur on mis.titulatuur.id = mis.relaties_contactpersonen.titulatuur_id
LEFT JOIN   mis.subregios on mis.offertes.subregio_id = mis.subregios.id
LEFT JOIN   mis.medewerkers on mis.offertes.accountmanager_id = mis.medewerkers.id
LEFT JOIN   mdms.opm_offertes_producten on mis.offertes_producten.id = mdms.opm_offertes_producten.offertes_producten_id
WHERE       mis.offertes.id = $P{offerte_id}
    and     mis.offertes_producten.id = $P{product_id}
UNION ALL
SELECT      mis.offertes.id as offerte_id,
        mis.offertes.offertenr as offerte_nummer,
        mis.offertes.verzenddatum as offerte_verzenddatum,
            mis.offertes_klanten.id as klant_id,
        mis.relaties.id as relatie_id,
        mis.relaties.naam as relatie_naam,
        mis.relaties.voorvoegsel as relatie_voorvoegsel,
        mis.relaties.padres as relatie_adres,
        mis.relaties.ppostcode as relatie_postcode,
        mis.relaties.pwoonplaats as relatie_woonplaats,
        mis.relaties_contactpersonen.id as contactpersoon_id,
        mis.relaties_contactpersonen.naam as contactpersoon_naam,
        mis.relaties_contactpersonen.voorletters as contactpersoon_voorletters,
        mis.relaties_contactpersonen.tussenvoegsel as contactpersoon_tussenvoegsel,
        mis.titulatuur.id as titulatuur_id,
        mis.titulatuur.adrestitel as contactpersoon_aanhef,
        mis.offertes_producten.id as product_id,
        mis.offertes_producten.offertetekst00 as product_zondertitel,
        mis.offertes_producten.offertetekst10 as product_contactpersoon,
        mis.offertes_producten.productomschrijving as product_omschrijving,
        mis.offertes_producten.offertetekst11 as product_prijsbetaling, 
            mis.subregios.id as subregio_id,
        mis.subregios.code as subregio_regio,
        mis.subregios.wadres as subregio_wadres, 
        mis.subregios.padres as subregio_padres,
        mis.subregios.ppostcode as subregio_postcode,
        mis.subregios.pwoonplaats as subregio_woonplaats,
        mis.subregios.telefoon as subregio_telefoon,
        mis.subregios.fax as subregio_fax,
        mis.subregios.email as subregio_email,
        mis.subregios.www as subregio_www,
        mis.subregios.kvk as subregio_kvk,
        mis.subregios.bank as subregio_bank, 
        mis.medewerkers.id as account_id,
        mis.medewerkers.naam as account_naam,
        mis.medewerkers.tussenvoegsel as account_tussenvoegsel,
        mis.medewerkers.roepnaam as account_roepnaam,
        mis.medewerkers.mobiel as account_mobiel,
        mis.medewerkers.email as account_email,
        mis.offertes_producten.offertetekst08 as product_tekst,
        'Bijdrage klant:' as product_toelichting,
        mdms.opm_offertes_producten.na_bijdrageklant as product_afbraak,
        'product_bijdrageklant' as product_jasper
FROM            mis.offertes_klanten
LEFT JOIN       mis.offertes on mis.offertes_klanten.offerte_id = mis.offertes.id
LEFT JOIN       mis.offertes_producten on mis.offertes_producten.offerte_id = mis.offertes.id
LEFT JOIN   mis.relaties on mis.offertes_klanten.relatie_id = mis.relaties.id
LEFT JOIN   mis.relaties_contactpersonen on mis.offertes_klanten.relaties_contactpersonen_id = mis.relaties_contactpersonen.id
LEFT JOIN       mis.titulatuur on mis.titulatuur.id = mis.relaties_contactpersonen.titulatuur_id
LEFT JOIN   mis.subregios on mis.offertes.subregio_id = mis.subregios.id
LEFT JOIN   mis.medewerkers on mis.offertes.accountmanager_id = mis.medewerkers.id
LEFT JOIN   mdms.opm_offertes_producten on mis.offertes_producten.id = mdms.opm_offertes_producten.offertes_producten_id
WHERE       mis.offertes.id = $P{offerte_id}
    and     mis.offertes_producten.id = $P{product_id}
UNION ALL
SELECT      mis.offertes.id as offerte_id,
        mis.offertes.offertenr as offerte_nummer,
        mis.offertes.verzenddatum as offerte_verzenddatum,
            mis.offertes_klanten.id as klant_id,
        mis.relaties.id as relatie_id,
        mis.relaties.naam as relatie_naam,
        mis.relaties.voorvoegsel as relatie_voorvoegsel,
        mis.relaties.padres as relatie_adres,
        mis.relaties.ppostcode as relatie_postcode,
        mis.relaties.pwoonplaats as relatie_woonplaats,
        mis.relaties_contactpersonen.id as contactpersoon_id,
        mis.relaties_contactpersonen.naam as contactpersoon_naam,
        mis.relaties_contactpersonen.voorletters as contactpersoon_voorletters,
        mis.relaties_contactpersonen.tussenvoegsel as contactpersoon_tussenvoegsel,
        mis.titulatuur.id as titulatuur_id,
        mis.titulatuur.adrestitel as contactpersoon_aanhef,
        mis.offertes_producten.id as product_id,
        mis.offertes_producten.offertetekst00 as product_zondertitel,
        mis.offertes_producten.offertetekst10 as product_contactpersoon,
        mis.offertes_producten.productomschrijving as product_omschrijving,
        mis.offertes_producten.offertetekst11 as product_prijsbetaling, 
            mis.subregios.id as subregio_id,
        mis.subregios.code as subregio_regio,
        mis.subregios.wadres as subregio_wadres, 
        mis.subregios.padres as subregio_padres,
        mis.subregios.ppostcode as subregio_postcode,
        mis.subregios.pwoonplaats as subregio_woonplaats,
        mis.subregios.telefoon as subregio_telefoon,
        mis.subregios.fax as subregio_fax,
        mis.subregios.email as subregio_email,
        mis.subregios.www as subregio_www,
        mis.subregios.kvk as subregio_kvk,
        mis.subregios.bank as subregio_bank, 
        mis.medewerkers.id as account_id,
        mis.medewerkers.naam as account_naam,
        mis.medewerkers.tussenvoegsel as account_tussenvoegsel,
        mis.medewerkers.roepnaam as account_roepnaam,
        mis.medewerkers.mobiel as account_mobiel,
        mis.medewerkers.email as account_email,
        mis.offertes_producten.offertetekst09 as product_tekst,
        'Evaluatie:' as product_toelichting,
        mdms.opm_offertes_producten.na_evaluatie as product_afbraak,
        'product_evaluatie' as product_jasper
FROM            mis.offertes_klanten
LEFT JOIN       mis.offertes on mis.offertes_klanten.offerte_id = mis.offertes.id
LEFT JOIN       mis.offertes_producten on mis.offertes_producten.offerte_id = mis.offertes.id
LEFT JOIN   mis.relaties on mis.offertes_klanten.relatie_id = mis.relaties.id
LEFT JOIN   mis.relaties_contactpersonen on mis.offertes_klanten.relaties_contactpersonen_id = mis.relaties_contactpersonen.id
LEFT JOIN       mis.titulatuur on mis.titulatuur.id = mis.relaties_contactpersonen.titulatuur_id
LEFT JOIN   mis.subregios on mis.offertes.subregio_id = mis.subregios.id
LEFT JOIN   mis.medewerkers on mis.offertes.accountmanager_id = mis.medewerkers.id
LEFT JOIN   mdms.opm_offertes_producten on mis.offertes_producten.id = mdms.opm_offertes_producten.offertes_producten_id
WHERE       mis.offertes.id = $P{offerte_id}
    and     mis.offertes_producten.id = $P{product_id}


Wow 439 regels

Een tabel met die 8 voorwaardes en die 8 voorwaardes er in joinen was mijn collega niet zo voor, maar nu ik de query in zijn totaal zie :o denk ik dat ik die optie toch maar aan ga grijpen.

[ Voor 3% gewijzigd door Verwijderd op 28-07-2005 16:36 ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Hmm, een union. Dat had je in je topicstart niet gemeld en die melding van je in die andere reactie had ik gemist.

MySQL < 4.1 kent er wat bugs mee, die ervoor zorgen dat de veldgrootte wordt bepaald door de resultaten van de eerste clause, ipv door de maximale waarde in het hele resultaatset.

Dat heeft erg spannende gevolgen, test dit maar eens:
SQL:
1
SELECT 'te' as test UNION ALL SELECT 'test' as test

resultaat ie twee keer 'te'

Was het veld uit je eerste unioned-select toevallig 17 tekens?

Oplossing? Nieuwere mysql gebruiken, alle 4.0's die er nu zijn kunnen het niet (of natuurlijk een ander db-product ;) ).
Workaround? Zet de versie met de langste strings bovenaan of concat er wat spaties aan vast ofzo :X
Let er trouwens op dat dit vziw voor alle veldtypen geldt, maar vooral bij strings voorkomt.

Die enorm lange query herschrijven is sowieso verstandig ja.

Verwijderd

Topicstarter
Wist niet dat het in de union (uien?) zat...maar ik zal es kijken
Jaaah!!! Eerste veld is 17 tekens, maar die workaround is niet mogelijk bij mijn toepassing. This is some shitty bussiness

[ Voor 62% gewijzigd door ACM op 29-07-2005 11:51 ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op vrijdag 29 juli 2005 @ 09:03:
Wist niet dat het in de union (uien?) zat...maar ik zal es kijken
union = unie ;) Een ui is onion :P
Jaaah!!! Eerste veld is 17 tekens, maar die workaround is niet mogelijk bij mijn toepassing. This is some shitty bussiness
Ook het toevoegen van wat spaties is niet mogelijk?

Dan moet je overstappen naar mysql 4.1 (of postgresql of firebird of...) of je query herschrijven dat je de unions niet meer nodig hebt. Jouw query is zekerweten om te schrijven naar een variant zonder al die unions, cross join het bijvoorbeeld aan een tabel die die 8 statische veldjes van je bevat (en evt nog een volgorde-dingetje) en gebruik case om die 4 regels query-tekst die wijzigen te veranderen.

CASE specialetabel.veld WHEN x THEN 'text x' WHEN y THEN 'text y' .... END.
en natuurlijk hetzelfde met dat ene veld dat wijzigt waar je gewoon veld_x ipv 'text x' moet denken.

Toch lijkt het me niet onverstandig om te zoeken of je in je client-app nog de boel wat efficienter kan uitlezen, want deze query is op het oog eigenlijk nodeloos "8x zo zwaar".

[ Voor 36% gewijzigd door ACM op 29-07-2005 09:56 ]


Verwijderd

Topicstarter
weet ik, ik kan hem joinen met een extra tabel waarin, zoals je zei, de statische info staat, dan kan de query weer naar 1 normale query...

[ Voor 66% gewijzigd door ACM op 29-07-2005 11:51 ]


  • ShadowLord
  • Registratie: Juli 2000
  • Laatst online: 02-05 16:14
Ik denk dat ik wel weet waar dit vaandaan komt. MySQL heeft geen idee wat voor type veld je select en zal er default een CHAR(lengte text) van maken.

Dit UNION je dan met je 2e text. MySQL vind dan dat dit 2e veld overflowed en turncate het.

Je zal dit op moeten lossen met een CAST, CONVERT oid. denk ik (nu even geen tijd om uit te zoeken). Upgraden naar een nieuwere MySQL lijkt me trouwens ook een goed idee. Betere security en betere functionaliteit.

You see things; and you say, "Why?" But I dream things that never were; and I say, "Why not?"


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Nee, met cast's en convert's red je het volgens mij niet. MySQL weet namelijk wel degelijk dat het een char is, maar vziw kent het voor resultaat-typen enkel nog fixed-size recordtypes en zou het dus na de 2e en volgende queries evt het char-ding groter moeten maken oid.

Verwijderd

Topicstarter
ACM schreef op vrijdag 29 juli 2005 @ 13:57:
Nee, met cast's en convert's red je het volgens mij niet. MySQL weet namelijk wel degelijk dat het een char is, maar vziw kent het voor resultaat-typen enkel nog fixed-size recordtypes en zou het dus na de 2e en volgende queries evt het char-ding groter moeten maken oid.
vziw? was da?

varchar dan? Ga ik es ff testen

  • N0 0B
  • Registratie: Mei 2004
  • Laatst online: 20:16

N0 0B

cxb1=N#

voor zover ik weet ;)

Won't you break the beats, cause I'm hardcore - Tiga


Verwijderd

Topicstarter
Opgelost, het is inderdaad een bug in mySQL < 4.1in de UNION, de buffer kan alleen zo groot worden als de eerste waarde die je uitleest (in mijn geval dus maximaal 17 characters).
Als oplossing heb ik een hulptabel gemaakt en deze meegejoind, mijn query is nu dus 8 x zo klein :D

Bedankt voor jullie hilfe
Pagina: 1