Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MySQL Anzahl Strings mit selbem Beginn

Frage Entwicklung Datenbanken

Mitglied: RedBullmachtfit

RedBullmachtfit (Level 1) - Jetzt verbinden

26.01.2011 um 16:52 Uhr, 3056 Aufrufe, 9 Kommentare

Wieviele Artikelnummern die mit derselben Zahl / Buchstabe anfangen sind in der Tabelle vorhanden

Hallo,
ich habe eine Artikelinfo (VB.NET 2010) aufgebaut, in welcher Anwender einfach die jeweilige
Artikelnummer eingeben können und der jeweilige Lagerbestand und Preise etc. ausgegeben werden.
Dahinter steht eine MySQL 5 Datenbank.
Die Artikelnummern beginnen mit "2.xxxxxx" oder z.B. "JU xxxxxx"

Gibt nun ein Anwender "JU 12" ein, sollen alle Artikel, die mit "JU 12xxxx" beginnen in ein Datagrid geschrieben werden,
wenn die Anzahl der Ergebnisse > 1 beträgt.
Die Abfrage lautet:
01.
SELECT a.art_nr, count(*) FROM artikel a WHERE a.art_nr LIKE 'JU 12%' GROUP BY a.art_nr
Hier bleibt Count bei 1, da ja jede Artikelnummer nur einmal existiert.

Was mache ich verkehrt bzw. wie lautet die Abfrage richtig?

Danke im Voraus!
Mitglied: EvilMoe
26.01.2011 um 17:43 Uhr
Das GROUP BY kannst du dir doch sparen, jede Nr ist nur einmal vorhanden also brauch doch nichts grupiert werden oder sehe ich das falsch?
Was ist denn nun das Problem, das Count 1 anzeiget aber mehr als eine Artikel Nr. mit JU 12 anfängt?
Bitte warten ..
Mitglied: RedBullmachtfit
26.01.2011 um 18:02 Uhr
Ja, ich dachte ich könnte nach dem Anfang des String Gruppieren. Also in dem Fall "JU 12".
Ich möchte einfach
1. die Anzahl der Artikel herausfinden, deren Artikelnummer mit dem String also wieder "JU 12" beginnen.
Also JU 12001, JU 12002 JU 12003 = 3 Artikel
2. diese drei Artikel in einem Datagrid darstellen, damit der Anwender per Klick auf einen Artikel die jeweiligen
Daten wie Lagerbestand und Preise sieht.
Bitte warten ..
Mitglied: EvilMoe
26.01.2011 um 18:19 Uhr
Wenn du das mit GROUP BY machst erhälst du immer "1", das ist auch korrekt. Denn für jede Artikelnummer hast du auch nur einen Treffer.
Wenn du allerdings die ganze Anzahl haben möchtest wieviele Artikelnummern mit "JU 12" anfangen musst du das GROUP BY weg lassen.
Bitte warten ..
Mitglied: sputnik
26.01.2011 um 18:33 Uhr
01.
SELECT a.art_nr FROM artikel a WHERE a.art_nr LIKE 'JU 12%'
Die Anzahl der Datensätze wertest du dann in VB.NET 2010 aus.
Bitte warten ..
Mitglied: RedBullmachtfit
27.01.2011 um 08:52 Uhr
Okay, danke euch beiden schonmal. Die richtigen Artikel bekomme ich ja bereits.
Aber wie finde ich denn mi dem MySQL Connector die Anzahl der Ergebnisse heraus?
Ich will die Daten aus Performancegründen nicht grundsätzlich in das Datagrid laufen lassen, sondern nur wenn
mehrere Artikelnummern existieren die mit "JU 12xxxx" beginnen, damit der Benutzer den gewünschten per Mausklick auswählen kann.

01.
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSearch.Click 
02.
        Dim conn As New MySqlConnection 
03.
        Dim myCommand As New MySqlCommand 
04.
        Dim myAdapter As New MySqlDataAdapter 
05.
        Dim mydatareader As MySqlDataReader 
06.
        Dim myString As String = "" 
07.
 
08.
        Dim SQL As String 
09.
 
10.
        SQL = "SELECT * FROM artikel a, lagerbestand l, preisstaffel p, preiseinheit pr, me_tab m WHERE a.art_nr LIKE '" & txtArtikel.Text & _ 
11.
            "%' AND a.art_lfdnr = l.lbs_artlfdnr AND a.art_preisnr = p.mes_nr AND a.art_preiskz = pr.pr_nr AND a.art_mekz1 = m.me_nr" 
12.
 
13.
        conn.ConnectionString = myConnString 
14.
        Try 
15.
            conn.Open() 
16.
            Try 
17.
                myCommand = conn.CreateCommand() 
18.
                myCommand.CommandType = CommandType.Text 
19.
                myCommand.CommandText = SQL 
20.
                mydatareader = myCommand.ExecuteReader(CommandBehavior.SingleRow) 
21.
                mydatareader.Read() 
22.
 
23.
                If mydatareader.HasRows Then 
24.
 
25.
                    myString = mydatareader("art_nr") 
26.
                    If Not IsDBNull(myString) Then 
27.
                        lblActiveArt.Text = Convert.ToString(myString) 
28.
                    End If 
29.
 
30.
                    myString = mydatareader("art_bez_001") 
31.
                    If Not IsDBNull(myString) Then 
32.
                        txtBez001.Text = Convert.ToString(myString) 
33.
                    Else 
34.
                        txtBez001.Text = String.Empty 
35.
                    End If 
36.
... 
37.
 
38.
                End If 
39.
            Catch myerror As MySqlException 
40.
                MsgBox("Fehler beim Lesen der Datenbank: " & myerror.Message) 
41.
            End Try 
42.
        Catch myerror As MySqlException 
43.
            MessageBox.Show("Fehler beim Verbindungsaufbau: " & myerror.Message) 
44.
        Finally 
45.
            If conn.State <> ConnectionState.Closed Then conn.Close() 
46.
        End Try 
47.
    End Sub
Bitte warten ..
Mitglied: sputnik
27.01.2011 um 13:00 Uhr
Dann mach zuerst einen Count(*) und wenn er positiv ist, dann die eigentliche Abfrage. Außerdem kannst du Abfragen limitieren, mit einem "LIMIT 20" am Ende (20 Datensätze). VB.Net kenne ich leider nicht.
Bitte warten ..
Mitglied: RedBullmachtfit
27.01.2011 um 14:09 Uhr
Gute Idee mit dem Count ;)
Aber wie oben beschrieben bleibt ja Count bei 1, da jede Artikelnummer ja nur einmal existiert.
Ich muss wissen wieviele Datensätze mit dem BEGINN des Strings existieren.
Bitte warten ..
Mitglied: sputnik
27.01.2011 um 14:35 Uhr
Mensch, ist doch kein Problem, hier ist dein Count:

01.
SELECT count(*) FROM artikel a WHERE a.art_nr LIKE 'JU 12%'
Bitte warten ..
Mitglied: RedBullmachtfit
27.01.2011 um 14:45 Uhr
Aaaaah, so hast du das gemeint!
Perfekt, ich danke dir!
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
C und C++
gelöst Anzahl der Buchstaben in einem String Element Array C++ (3)

Frage von Protected zum Thema C und C ...

Zusammenarbeit
Minimale Anzahl Admins? (6)

Frage von 1410640014 zum Thema Zusammenarbeit ...

PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...