Ich habe ein bisschen Spalte wie folgt aus:Wie setze ich 1 für alle Bits, ohne die Länge der Spalte zu kennen?
// mytable
+---------+------------+
| id | numb |
+---------+------------+
| int(11) | bit(10) |
+---------+------------+
| 1 | NULL |
| 2 | NULL |
+---------+------------+
nicht, dass dies erwartete Ergebnis:
// mytable
+---------+------------+
| id | numb |
+---------+------------+
| int(11) | bit(10) |
+---------+------------+
| 1 | 1111111111 |
| 2 | 1111111111 |
+---------+------------+
Wissen Sie, ich, dass wie dies tun können:
UPDATE mytable SET numb = b'1111111111';
Aber vielleicht werde ich die Länge der numb
Spalte in Zukunft ändern und dann Abfrage oben fehlschlägt. Wie kann ich 1
für alle Bits festlegen, ohne die Länge der Bitspalte zu kennen?
EDIT: Eigentlich versuche ich, so etwas zu tun:
UPDATE mytable SET numb = b'0';
/* output
+---------+------------+
| id | numb |
+---------+------------+
| int(11) | bit(10) |
+---------+------------+
| 1 | 0000000000 |
| 2 | 0000000000 |
+---------+------------+
*/
Wie Sie sehen, ich 0
für alle Bits gesetzt, ohne die Länge der Säule zu kennen. Nun, wie kann ich das tun, nur 1
anstelle von 0
setzen?
könnten Sie die sys-Tabellen für die Datentypen abzufragen, und dann verwenden, um die Länge für Ihren Einsatz – PyNoob
'Select character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS wo table_name =‚MYTABLE‘und schema =‚MYSCHEMA‘und COLUMN_NAME zu identifizieren = 'betäuben' verwenden [lpad] (http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lpad) mit diesem Pad 1 für jeden Wert in der Länge. – xQbert
Können Sie den Wert auf -1 setzen, das ist alles 1s in 'Zweierkomplement' – Stavr00