Sql abfrage nur bestimmter wert?

ZaoDaDong  15.10.2021, 11:15

Was heißt "nur 9 Zeichen erlaubt"? Darf die Abfrage nur 9 Zeichen lang sein? Was in Tabellen erlaubt ist, wird über die Definition der Datentypen gesetzt.

Lukmon22 
Fragesteller
 15.10.2021, 11:25

Die BEDINGUNG die man einstellen soll ist, dass das Wort in der Zeile nur 9 Zeichen haben darf wobei jedes Zeichen von 0-9 gehen darf

Ben Sellin  15.10.2021, 11:16

Welche Datenbank hast du? MSSQL, MyDQL, MariaDB?

Lukmon22 
Fragesteller
 15.10.2021, 11:21

Sql Server Microsoft

Ben Sellin  15.10.2021, 11:17

Aus welchem System möchtest du die Abfrage starten? PHP, Workbench, sonstiges?

Lukmon22 
Fragesteller
 15.10.2021, 11:22

abfrage aus einer Datenbank ganz normal

Ben Sellin  15.10.2021, 11:18

Ist der Abfrage String immer gleich, nur die 9 Zeichen ändern sich z.B. durch Nutzereingabe?

Lukmon22 
Fragesteller
 15.10.2021, 11:22

Möchte nur wissen wie man die Bedingung so eintippt, dass nur Zeichen von 0-9 erlaubt sind an JEDER stelle

2 Antworten

Hallo Lukmon22,

die Sprache SQL tippst du entweder in einer DB Workbench ein oder baust den String über z.B. PHP in einem Webserver auf und sendest diesen ab. Ersteres bietet nicht die Möglichkeit bestimmte Werte zu beschränken.

Dazu müsstest du z.B. einen Webserver haben welcher auf der Webseite ein Eingabe Feld anzeigt. In diesem Feld gibst du den Wert für eine Variable vor welche dann in den SQL String eingefügt wird und das abgefragt wird.
Dass du in diesem Feld dann nur 9 Zeichen und jedes dieser Zeichen nur die Zeichen 0-9 darstellen kann müsstest du mit RegEx lösen:

Die Expression könnte dann so aussehen: http://regexr.com/67ir7

Ben

Lukmon22 
Fragesteller
 15.10.2021, 12:13

Schau mal: ich möchte eine Tabelle erstellen, bei dem eine Spalte ,,Postleitzahl“ heist. Diese darf nur 9 Zeichen haben, wovon jedes Zeichen von 0-9 gehen darf. Diese Bedingung möchte ich mit einem Code bei sql Server eintippen. Wie geht das ?

0
Ben Sellin  15.10.2021, 12:22
@Lukmon22

Meines Wissens nach kann SQL kein Regex oder ähnliche Prüfungsmethoden. Das muss im Vorfeld (durch das Programm bzw. die Person die den Befehl eintippt) geprüft werden.

0
showgirl1  15.10.2021, 12:36
@Lukmon22

Sehr merkwürdig... Du willst die Eingabe auf die Ziffern 0-9 (welche gibt es denn da noch?) eingrenzen, aber eine Länge von 9 Stellen erlauben. Was sollen dass denn für Postleitzahlen sein? Hab jetzt spontan kein Land gefunden, welches einen solchen PLZ Typ nutzt (ich lerne aber gern auch dazu).

1
Lukmon22 
Fragesteller
 15.10.2021, 12:46
@showgirl1

Bro der Sinn ist erstmal egal, es hätte auch 0-5 sein können. Ich will die Syntax wissen

0
Von Experte Ben Sellin bestätigt

Diese Bedingung musst du im Backend beim Erstellen der Anfrage überprüfen. So ginge es zum Beispiel in Node.js :

if (/^\d{9}$/.test(eingabe)) {
   ...
}
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf